Slide 1

Slide 1 text

Integração Contínua em Projetos Utilizando

Slide 2

Slide 2 text

● 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

Slide 3

Slide 3 text

● Motivação ● Github Actions ○ Caso de Uso ○ Overview ○ Implementação na Prática ■ Definindo o Workflow ■ Executando o Workflow ● Dica Bagual Roteiro

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Caso de Uso https://github.com/IgorSantos17/github-actions-php

Slide 7

Slide 7 text

Overview

Slide 8

Slide 8 text

Overview

Slide 9

Slide 9 text

Overview

Slide 10

Slide 10 text

Implementação na Prática

Slide 11

Slide 11 text

● 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

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

● 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

Slide 14

Slide 14 text

● 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

Slide 15

Slide 15 text

● 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

Slide 16

Slide 16 text

● 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

Slide 17

Slide 17 text

Definindo o Workflow /Scripts run-composer.sh run-phpstan.sh run-phpinsights.sh run-codeception.sh

Slide 18

Slide 18 text

Executando o Workflow

Slide 19

Slide 19 text

Executando o Workflow / Commit

Slide 20

Slide 20 text

Executando o Workflow

Slide 21

Slide 21 text

Executando o Workflow

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Executando o Workflow / Commit

Slide 24

Slide 24 text

Executando o Workflow

Slide 25

Slide 25 text

Executando o Workflow

Slide 26

Slide 26 text

Alterando Necessidades

Slide 27

Slide 27 text

Alterando Necessidades

Slide 28

Slide 28 text

Executando o Workflow / Commit

Slide 29

Slide 29 text

Executando o Workflow

Slide 30

Slide 30 text

Executando o Workflow

Slide 31

Slide 31 text

Dica Bagual Ferramenta act para rodar e testar localmente suas actions https://github.com/nektos/act

Slide 32

Slide 32 text

Documentação https://help.github.com/en/actions/automating-your-workflow-with-github-actions

Slide 33

Slide 33 text

Dúvidas

Slide 34

Slide 34 text

twitter.com/IgorSantoos17 linkedin.com/in/igorsantoos github.com/IgorSantos17 medium.com/@igorsantos17 speakerdeck.com/igorsantos Contatos