Pipelines
Status: Finalizado ✅
Toda pipeline possui 3 etapas, são elas: Source, Build e Deploy.
Na etapa Source é feito o download do código fonte de acordo com a branch que foi atualizada, seja ela, a branch develop (para ambiente dev), staging (para ambiente staging) ou main (para ambiente de produção).
Na etapa Build é feito o build do projeto através do CodeBuild. A build do projeto é detalhada no seguinte arquivo buildspec.yml.
Normalmente na etapa de build são realizadas as seguintes tarefas.
- Instalação das dependências
- Executar os linters do projeto
- Rodar os testes do projeto
- Build do código fonte (caso seja realizado)
- Gera-se os artefatos para o Amazon S3 (com todo os arquivos necessários para rodar o software)
Na etapa Deploy é feito o deploy da aplicação no AWS ElasticBeanstalk no ambiente correspondente.
Pipelines de frontend
obraplaydevelop
Essa pipeline é executada toda vez que há um novo commit na branch develop. Normalmente, é disparada ao se aceitar um Pull Request (PR).
obraplaystaging
Essa pipeline é executada toda vez que há um novo commit na branch staging. Quando a branch develop tiver que ser promovida para staging, deve-se fazer checkout para branch staging e rebase da develop. Com a staging no mesmo commit da develop, realiza-se o git push.
Com esse git push, a pipeline obraplaystaging é acionada e realiza o deploy no ambiente staging automaticamente.
obraplayproduction
Essa pipeline é executada toda vez que há um novo commit na branch main. Quando a branch staging tiver quee ser promovida para main, deve-se fazer checkout para branch main e rebase da staging (que já passou por deploy). Realiza-se o git push da main que estará no mesmo commit da staging.
Com esse git push, a pipeline obraplayproduction é acionada e realiza o deploy no ambiente production automaticamente.
ATENÇÃO: Ao realizar deploy no ambiente de produção é necessário criar uma nova TAG no GIT a fim de acompanhar as versões que estão em produção para os usuários finais. Fazendo push da TAG para o CodeCommit.
Pipeline de backend
obraplayapi
Esse pipeline realiza o deploy do backend que é muito mais simplificado pois não necessita de compilação/transpilação de código visto que o python é uma linguagem interpretada.
Essa pipeline é executada toda vez que há um novo commit na branch develop (via PR).
Para promoção dos ambientes, deve-se usar a aba application versions no AWS ElasticBeanstalk diferentemente do front-end, visto que há build separadas para cada ambiente.