- Iniciando
- Documentação
Arquitetura
Políticas e Padrões
Infraestrutura
- Ecossistema
Ambientes
Integração Contínua
Monitoramento
Utilitários
Documentos
- Equipe
Processo de Desenvolvimento
O processo de desenvolvimento é realizada através do fluxo de trabalho do Git.
O objetivo deste documento é apresentar qual abordagem temos seguido para realizar o deploy dos serviços do STF Digital.
Objetivos
Em termos de processo de desenvolvimento, trabalhamos com seguinte conjunto de objetivos:
- Desenvolvimento distribuído
- Padronização dos códigos
Fluxo de Codificação
É realizado através da Ferramenta Git com o seguinte fluxo:
- Master: versão que está em Produção.
- Hotfix: versão criada para corrigir bugs. Nomemclatura Padrão: HF
- Release: versão gerada para implantação e realizar o merge com a Master e atualizar a Develop. Nomemclatura Padrão: RL
- Develop: versão que o desenvolvimento consulta para começar uma feature.
- Feature: versão para desenvolver uma nova funcionalidade. Nomemclatura Padrão: FT
Comandos Git
Feature branch | Hotfix | Release branch |
---|---|---|
Padrão ft-nome-do-projeto-000 (número da issue) a partir da branch develop | Padrão hf-projeto-000 a partir da branch master | Padrão rl-0.0.0 (fix versioin do JIRA) a partir da branch develop |
git checkout develop git pull origin develop git checkout -b ft-stfdigital-123 develop git push origin ft-stfdigital-123 | git checkout master git pull origin master git checkout -b hf-stfdigital-234 master git push origin hf-stfdigital-234 | git pull origin develop git checkout -b rl-0.0.1-RC develop git push origin rl-0.0.1-RC |
Ao final do dia, atualize o repositório remoto | Merge com a master e com a develop | Correções de bug na própria branch |
git commit -m “Se tiver alteração pendente” git push origin ft-stfdigital-123 | git checkout master git pull origin master git merge –no-ff hf-stfdigital-234 git push origin master git checkout develop git pull origin develop git merge –no-ff hf-stfdigital-234 git push origin develop git branch -d hf-stfdigital-234 git push origin –delete hf-stfdigital-234 | git commit -m “Correção do bug” git push origin rl-0.0.1-RC |
Para finalizar uma feature | * Se tiver uma branch de release fazer o merge com ela e não com a develop | Merge com a master e com a develop |
git checkout develop git pull origin develop git merge –no-ff ft-stfdigital-123 git push origin develop git branch -d ft-stfdigital-123 git push origin –delete ft-stfidigital-123 | * Caso necessário,fazer merge do hotfix diretamente na feature branch | git checkout master git pull origin master git merge –no-ff rl-0.0.1-RC git push origin master git checkout develop git pull origin develop git merge –no-ff rl.0.0.1-RC git push origin develop git tag -a 0.1 -m “Descrição da release” git push –tags origin master git branch -d rl-0.0.1-RC git push origin –delete rl-0.0.1-RC |
Automatização
Hoje a automatização no STF Digital está presente nas construção das releases e na integração com o Jira para versão e issues de implantação.
- Pipeline: A criação de pipeline ainda não está automatizada, é necessário criar a aplicação, depois ir em adicionar pipeline, utilizamos como padrão Deploy, copiar os estágios um por um com a opção “Copy an existing stage” ou copiar o json de outro pipeline em Pipeline Actions, lembrando que é necessário modificar as variáveis de ambientes em cada estágio.
- Jira: Já está em produção a abertura e fechamento de issues de implantação automaticamente no Jira. Também está presente a associação automática da versão nas issues que tem na mensagem do commit o número da mesma no Domínio de Decisões, porém é necessário seguir o Fluxo de Codificação (Git Flow) descrito acima.
- Repositório: A criação de repositório ainda não está totalmente automatizada, é necessário fazer ajustes manuais do gitlab-ci.yml para cada novo contexto.