Automatizando fluxos de trabalho com GitHub Actions
Jonathan Gonçalves
Posted on December 21, 2023
Com o GitHub Actions, podemos executar fluxos de trabalho personalizados diretamente em nosso repositório. Podemos descobrir, criar e compartilhar ações para automação eficiente, CI/CD e muito mais.
Vamos automatizar o fluxo de trabalho de um projeto já bem conhecido em nossos artigos, product-api.
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Learning Laravel
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel…
Vou criar duas ações que serão executadas após pull requests. A primeira realiza testes para evitar quebras de recursos, enquanto a segunda executa lint para garantir qualidade no código.
Vamos para a tab Actions em nosso repositório.
Observe que ele me sugere alguns workflows. Vamos configurar o Laravel.
Vamos ajustar o fluxo de trabalho para acionar em qualquer pull request, atualizar a versão do PHP para 8.1 e remover a criação do banco de dados e variáveis de ambiente, pois nosso projeto está configurado para usar banco de dados em memória durante os testes.
Agora, criaremos nosso segundo workflow responsavel por executar lint no código. Em 'Actions', clique em 'Skip this and set up a workflow yourself'. Ao pesquisar 'lint' no marketplace, encontraremos o action que precisamos. Entretanto, o .yml sugerido está incompleto, então escreveremos o nosso.
Vamos aplicar a mesma configuração para pushes e pull requests utilizado no laravel.yml. Em seguida, modificaremos os steps para utilizar a ação aglipanci/laravel-pint-action.
Com os workflows criados, vamos aproveitar pra passar um lint no projeto. Em seguida, faremos um pull request e aguardaremos os workflows executarem. Se tudo estiver correto, poderemos seguir com o merge do pull request.
Agora faremos o pull request de uma branch que possui um teste que falhará e chave aberta na mesma linha que o nome da classe.
<?phpnamespaceTests\Unit;usePHPUnit\Framework\TestCase;classFalseAssertTestextendsTestCase{/**
* A basic unit test example.
*/publicfunctiontest_example():void{$this->assertTrue(false);}}
A implementação de fluxos de trabalho eficientes, agiliza a validação de código, aumenta a confiança nas alterações e aprimora o processo de CI/CD, promovendo um desenvolvimento ágil e de alta qualidade.