Slide 1

Slide 1 text

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 1 / 52 galvao.eti.br Uma implementação Gitflow Prática e Completa

Slide 2

Slide 2 text

Programador, Professor e Consultor Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP Diretor, ConFLOSS, NodeConBR e PHP Conference Brasil Evangelista e Contribuidor para a Linguagem PHP Evangelista e Contribuidor para o Laminas Project Embaixador Fedora LATAM Professor Convidado (Especialista) de Pós-Graduação (PR e SC) 27+ anos desenvolvendo sistemas com interface web 20+ destes com PHP 15+ com Zend Framework / Laminas Project Palestrante em eventos nacionais e internacionais Professor de cursos presenciais e à distância www.galvao.eti.br galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 2 / 52 Eu sou o Galvão:

Slide 3

Slide 3 text

Apresentar a g-flow, uma implementação prática e completa da estratégia de branching Gitflow: Mais do que duas branches permanentes; Conectada; Com a possibilidade de métricas; Troca rápida entre versões; github.com/galvao-eti/g-flow galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 3 / 52 Objetivo

Slide 4

Slide 4 text

1) Apresenta 4 tipos de branches: 1) Hotfix, Fix, Feature e Epic. 2) Branches Iniciais: 1) Desenvolvimento; 2) Homologação; 3) Produção. 3) Estabilidade: A branch de Produção só é atualizada por Hotfixes e Releases. 4) Organização: Fluxos claros e completos para cada tipo de branch. 5) Simplicidade: Ferramenta bash para trabalhar com todos os tipos. galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 4 / 52 Conceitos

Slide 5

Slide 5 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 5 / 52

Slide 6

Slide 6 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 6 / 52 Fluxo: Hotfix

Slide 7

Slide 7 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 7 / 52 Fluxo: Hotfix Após a identificação do bug o(a) Release Manager (RM) declara o início do Code Freeze.

Slide 8

Slide 8 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 8 / 52 Fluxo: Hotfix Dev cria a branch com o nome no formato hotfix/issue a partir de Produção e imediatamente a cria remotamente

Slide 9

Slide 9 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 9 / 52 Fluxo: Hotfix Dev trabalha na sua branch, testa a correção localmente, faz o push para a sua branch remota e notifica o(a) RM

Slide 10

Slide 10 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 10 / 52 Fluxo: Hotfix O(a) RM faz o merge em Produção e Desenvolvimento

Slide 11

Slide 11 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 11 / 52 Fluxo: Hotfix Estando declarada a solução do bug, o(a) RM lança a release a partir de Produção ...

Slide 12

Slide 12 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 12 / 52 Fluxo: Hotfix … e faz o merge para todas as branches de Homologação e Produção.

Slide 13

Slide 13 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 13 / 52 Fluxo: Hotfix … e faz o merge para todas as branches de Homologação e Produção.

Slide 14

Slide 14 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 14 / 52 Fluxo: Hotfix … e faz o merge para todas as branches de Homologação e Produção.

Slide 15

Slide 15 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 15 / 52 Fluxo: Hotfix … e faz o merge para todas as branches de Homologação e Produção.

Slide 16

Slide 16 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 16 / 52 Fluxo: Hotfix O período de Code Freeze é encerrado

Slide 17

Slide 17 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 17 / 52 Fluxo: Feature

Slide 18

Slide 18 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 18 / 52 Fluxo: Feature Dev cria a branch com o nome no formato feature/issue a partir de Produção e imediatamente a cria remotamente. Dev trabalha na sua branch, testa a feature localmente e faz pushes para a sua branch remota

Slide 19

Slide 19 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 19 / 52 Fluxo: Feature Ao concluir o trabalho, Dev abre uma PR para Desenvolvimento. É realizado o Code Review

Slide 20

Slide 20 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 20 / 52 Fluxo: Feature Se a PR for aprovada, o(a) RM faz o merge para Desenvolvimento e Homologação e declara o início do Code Freeze.

Slide 21

Slide 21 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 21 / 52 Fluxo: Feature Em Homologação são realizados os testes de Regra de Negócio. Caso o trabalho seja homologado, ele é mergeado no ambiente de Homologação do Cliente

Slide 22

Slide 22 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 22 / 52 Fluxo: Feature Se o cliente homologar, o(a) RM lança a release a partir de Homologação...

Slide 23

Slide 23 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 23 / 52 Fluxo: Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 24

Slide 24 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 24 / 52 Fluxo: Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 25

Slide 25 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 25 / 52 Fluxo: Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 26

Slide 26 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 26 / 52 Fluxo: Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 27

Slide 27 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 27 / 52 Fluxo: Feature O período de Code Freeze é encerrado

Slide 28

Slide 28 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 28 / 52 Fluxo: Epic Feature

Slide 29

Slide 29 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 29 / 52 Fluxo: Epic Feature É criada uma branch com o nome no formato epic/nome_epic a partir de Produção

Slide 30

Slide 30 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 30 / 52 Fluxo: Epic Feature Dev cria a branch com o nome no formato feature/issue a partir de epic/nome_epíc e imediatamente a cria remotamente. Dev trabalha na sua branch, testa a feature localmente e faz pushes para a sua branch remota

Slide 31

Slide 31 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 31 / 52 Fluxo: Epic Feature Ao concluir o trabalho, Dev abre uma PR para a branch da epic. É realizado o Code Review

Slide 32

Slide 32 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 32 / 52 Fluxo: Epic Feature Se a PR for aprovada, o(a) RM faz o merge para a branch da epic. Quando a epic estiver concluída e testada, Dev abre uma PR para Desenvolvimento

Slide 33

Slide 33 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 33 / 52 Fluxo: Epic Feature Se a PR for aprovada, o(a) RM faz o merge para Desenvolvimento e Homologação e declara o início do Code Freeze.

Slide 34

Slide 34 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 34 / 52 Fluxo: Epic Feature Em Homologação são realizados os testes de Regra de Negócio. Caso o trabalho seja homologado, ele é mergeado no ambiente de Homologação do Cliente

Slide 35

Slide 35 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 35 / 52 Fluxo: Epic Feature Se o cliente homologar, o(a) RM lança a release a partir de Homologação...

Slide 36

Slide 36 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 36 / 52 Fluxo: Epic Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 37

Slide 37 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 37 / 52 Fluxo: Epic Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 38

Slide 38 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 38 / 52 Fluxo: Epic Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 39

Slide 39 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 39 / 52 Fluxo: Epic Feature … e faz o merge para todas as branches de Homologação e Produção.

Slide 40

Slide 40 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 40 / 52 Fluxo: Epic Feature O período de Code Freeze é encerrado.

Slide 41

Slide 41 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 41 / 52 Fluxo: Fix

Slide 42

Slide 42 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 42 / 52 Fluxo: Fix Dev cria a branch com o nome no formato fix/issue a partir de Produção e imediatamente a cria remotamente. Dev trabalha na sua branch, testa o fix localmente e faz pushes para a sua branch remota

Slide 43

Slide 43 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 43 / 52 Fluxo: Fix Ao concluir o trabalho, Dev abre uma PR para Desenvolvimento. É realizado o Code Review

Slide 44

Slide 44 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 44 / 52 Fluxo: Fix Se a PR for aprovada, o(a) RM faz o merge para Desenvolvimento e Homologação e declara o início do Code Freeze

Slide 45

Slide 45 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 45 / 52 Fluxo: Fix Em Homologação são realizados os testes de Regra de Negócio. Caso o trabalho seja homologado, ele é mergeado no ambiente de Homologação do Cliente

Slide 46

Slide 46 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 46 / 52 Fluxo: Fix Se o cliente homologar, o(a) RM lança a release a partir de Homologação...

Slide 47

Slide 47 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 47 / 52 Fluxo: Fix … e faz o merge para todas as branches de Homologação e Produção.

Slide 48

Slide 48 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 48 / 52 Fluxo: Fix … e faz o merge para todas as branches de Homologação e Produção.

Slide 49

Slide 49 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 49 / 52 Fluxo: Fix … e faz o merge para todas as branches de Homologação e Produção.

Slide 50

Slide 50 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 50 / 52 Fluxo: Fix … e faz o merge para todas as branches de Homologação e Produção.

Slide 51

Slide 51 text

galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 51 / 52 Fluxo: Fix O período de Code Freeze é encerrado.

Slide 52

Slide 52 text

Dúvidas? Críticas? Elogios?! ? galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 5/29/23 - 52 / 52 Muito Obrigado! Imagem por Matt “Kupo” Rozak