Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Integração Contínua em Projetos PHP Utilizando Github Actions

Igor Duarte
December 14, 2019

Integração Contínua em Projetos PHP Utilizando Github Actions

Evento: TchêLinux Porto Alegre - 2019
Github Actions é um serviço relativamente novo, que permite a criação de workflows com jobs a serem executados a partir dos eventos disparados no Github.

Se o seu projeto já está no Github esse serviço irá favorecer muito a implementação de integração e entrega contínua sem que haja a necessidade de sair para outras soluções como: Jenkins, Travis, CircleCI.

Nessa talk veremos como funciona a integração contínua de um projeto PHP utilizando o Github Actions, e como funciona um workflow que realiza a execução de testes e ferramentas de analise de código que visam garantir que a qualidade e a entrega do código esteja de acordo com o esperado.

Igor Duarte

December 14, 2019
Tweet

More Decks by Igor Duarte

Other Decks in Technology

Transcript

  1. • Sistemas de Informação - ULBRA • Software Developer •

    Developer há 6 anos • Coordenador da Comunidade • Palestrante e Escritor • Criador de ElePHPants • Gamer nas horas vagas ;) Igor Santos
  2. • Motivação • Github Actions ◦ Caso de Uso ◦

    Overview ◦ Implementação na Prática ▪ Definindo o Workflow ▪ Executando o Workflow • Dica Bagual Roteiro
  3. Motivação Github Actions é um serviço que permite a criação

    de workflows com jobs a serem executados a partir dos eventos disparados no Github. Favorecendo muito a implementação de integração e entrega contínua sem que haja a necessidade de sair para outras soluções como: Jenkins, Travis, CircleCI.
  4. • Criamos o diretório .github na raiz do projeto •

    Dentro dele criamos outro chamado workflows ◦ É aqui que definimos nossos workflows, como só temos um, criamos o arquivo main.yaml Definindo o Workflow
  5. • name: definimos o nome do nosso workflow • on:

    especificamos em quais eventos esse workflow será executado ◦ ele será executado sempre que um push ou um pull request for feito para o branch master Definindo o Workflow
  6. • jobs: é onde definimos os jobs a ser executados

    • build / name: o nome do job • runs-on: define qual ambiente a execução acontecerá • steps: é onde executamos as ações do job. ◦ um job pode executar N ações Definindo o Workflow
  7. • step / checkout: é a action checkout é padrão,

    sendo ela a responsável por clonar o projeto para o ambiente de execução • step / Setting up PHP: está step especifica um dockerfile contido em .github/actions/php que instalará a versão 7.3 do PHP que será utilizada para rodar os testes e validações. Definindo o Workflow dockerfile
  8. • step / Permissions: aqui concedemos permissões de leitura no

    diretório scripts para a execução de shell scripts • step / Installing Composer: instala as dependências • step / Running PHPstan: executa o phpstan • step / Running PHP Insights executa o php insights • step / Running Tests from Codeception executa a suit de testes de api Definindo o Workflow