Referências de estudos de caso de uso avançado do GitHub Actions (ilimitado e gratuito para Open Source) inexplorado no Brasil; foco cross-platform #2182
Replies: 2 comments 1 reply
-
Eu uso github actions, mas na verdade não foi eu quem criou. Eu não faço ideia como montar os scripts de deploy de forma manual, apenas conheço integrando direto o github com azure. |
Beta Was this translation helpful? Give feedback.
-
Aproveitando o tópico também, esta semana fiz uma live super massa com o pessoal do Azure na Prática onde a gente subiu aplicação Next.js tanto em um storage estático com Github Actions quanto também automatizamos a publicação da mesma com containers para quando for necessário servidor: Aula Next.js + GH Actions + Azure - Automatizando deploy do Next.js: Quem se interessar também, segue lá na twitch para trocarmos ideas, umas 3 noites por semana estarei ali ao vivo trocando ideias: E amanhã às 21h farei uma live com amigos sobre as novidades do Next.js. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Salve salve, comunidade brasileira que cria tendências! Antes mesmo do GitHub discussions já era a maior do seu tipo. Coincidência? Acho que não xD.
Nós do @HXL-CPLP estamos testando/documentando com <3 como é possível usar GitHub Actions (que rodam em máquinas poderosas) para automatização completa até mesmo para publicar nos marketplaces ou (tanto para testes como para quem não tem $ taxas) pelo menos gerar night builds baixáveis na aba releases do próprio GitHub para todas as plataformas que tecnologias típicas conseguiram ser empacotadas, mesmo que você como desenvolvedor não tenha todas as combinações de sistemas operacionais e SDKs de mobile.
No momento três formas de empacotar estão sendo documentadas (note que algumas permitem mais linguagens e frameworks):
Resumo rápido do potencial inexplorado
Explicação curta
Na imagem, uma busca por GitHub actions aqui no frontendbr/forum retorna isso (resumindo: discussões principalmente da época que era beta; hoje a implementação pode ser usada em produção, mas pessoas não estão atentas a isso).
Numa olhada em grupos de Facebook, pelo menos em 2021-10-27, a maioria de algo mais sério acontece naqueles relacionados a DevOps. Referências onde tem potencial de ajudar (como quem desenvolve software) também é rara.
Coloquei a imagem aqui porque é necessário dar um pontapé no assunto.
Explicação longa
O que digo de potencial inexplorado é que os executores hospedados no GitHub, além de ter imagens pre-prontas com dependencias (o que permite rodar em < 60s coisas que em outros C.I. poderia demorar minutos antes de começar) tem 7GB de ram (Linux, Windows) e 14 GB de RAM (macOS, que inclusive tem aceleração gráfica habilitada). Enquanto o soft-limit 50mb e hard limit (100GB) de arquivos em repositório são conhecidos, o hard limit de binários nos releases do GitHub, como os que que podem ser gerados automaticamente é de (em 2021-10-27) 2 GB. Embora seja possível deletar pacotes para ter mais espaço em discos (o que é garantido não menos do que 14GB livres, por isso muita coisa é empacotada como outras actions), é possível compilar aplicativos de Android e iOS, mas não tem disco suficiente para compilar algo como sistema operacional Android inteiro (recomendado 250GB ou mais). Também existe um "cache temporário" opcional, otimizado para dados mais acessados entre builds por repositório de 5GB, que é extremamente.
Ou seja: existe margem para, colaborativamente, criar esse tipo de documentação de como ajudar quem faz open source a ter maior controle com testes inclusive de apps gráficos em outros sistemas operacionais que ela não possuí! Comparado a quem fazia anos atrás usando Travis CI ou Azure Pipelines, ainda que uma e outra funcionalidade não tenha equivalente, não só ficou muito mais fácil (requer saber YAML, preferencialmente com guias de ajuda, que vocês poderiam cria em cima dos testes que estamos fazendo no @HXL-CPLP). Daí que uma ideia desse tópico é trocar ajudas.
Fato não intuitivo: a forma como Windows Server e macOS estão otimizados (por já ter pacotes instalados) rodar testes e gerar binários pode ser mais rápido do que fluxos de trabalho usando linguagens scripts que não fazem cache ou que usam matriz de testes exageradas. As GitHub Actions reusáveis para dotnet (e tudo relacionado a Microsoft) e Xcode (tanto app desktop macOS, como para compilar para iPhone) tão super otimizadas e documentadas, em alguns casos até melhor do que as de Linux, visto que as empresas pagam funcionários para manter elas perfeitas.
Para finalizar este resumo rápido: a ideia toda de ter GitHub Actions gratuita (e empresas quererem facilitar para desenvolvedores não precisarem máquinas poderosas locais para fazer Software no sistema operacional delas) faz muito sentido com iniciativas como editar código usando navegador (vide https://github.dev e https://vscode.dev). E fomentar a ideia de troca de ajudas de como usar actions (de forma eficiente) é útil para comunidade em geral (mas especialmente para quem não tem todo tipo de hardware). Some a isso que ao fazer prontas de conceito com dotnet + Electron + Flutter tem coisa que dá para reusar do ponto de vista de aprendizado (mesmo que cada um usa o que preferir!)
Exemplos de feedback incentivados neste post
Eu sei que post ficou longo, então vou propor já de início pelo menos essas sugestões. Faço isso
- Se sim, fale a respeito!
- Se você tem projeto em GitHub Actions e alguma outra alternativa (que não seja paga) pode também falar sobre impressões pessoais
- Inclusive desktop: Windows, Linux (diversos marketplaces), e macOS
- Inclusive móbile: web (diversas formas de empacotar), Android, iOS (com ou sem envio para Apple Store)
- Caso tenha interesse, pode comentar aqui. A gente do @HXL-CPLP pode te ajudar com isso. Motivo: como existem muitas plataformas diferentes, vale a pena ajudar pelo menos de 1 a 3 projetos reais.
- Nota: projetos que lidem com credenciais externas de acesso requerem certos cuidados. Quem quiser ajuda vale a pena ter contato por privado para tirar dúvidas. Existem coisas que apenas quem é dono de um repositório pode fazer.
- dica para quem gostar da idéia: as que são feitas em TypeScript (diferente das em Docker, que requer hospedeiro em Linux) por padrão podem rodar em Windows, macOS e Linux. Logo TypeScript é especialmente útil se surgirem necessidades mais específicas!
Nota: possivelmente esse tópico inicial seja editado caso sugestões novas surjam.
Beta Was this translation helpful? Give feedback.
All reactions