Skip to main content

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.

  1. Instalação das dependências
  2. Executar os linters do projeto
  3. Rodar os testes do projeto
  4. Build do código fonte (caso seja realizado)
  5. 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.