Imagem de fundo

O IFCE está desenvolvendo internamente um sistema de emissão de diplomas digitais. A eq...

O IFCE está desenvolvendo internamente um sistema de emissão de diplomas digitais. A equipe de TI adotou GitLab CI como plataforma de CI/CD e precisa configurar o pipeline no arquivo .gitlab-ci.yml com os seguintes requisitos: (1) testes automatizados devem ser executados a cada push em qualquer branch do repositório; (2) a imagem Docker da aplicação deve ser construída somente quando houver merge na branch main; (3) a implantação no ambiente de homologação do IFCE deve ocorrer automaticamente após build bem-sucedido na branch main, sem implantações acidentais em branches de desenvolvimento. Qual estrutura de configuração no .gitlab-ci.yml atende corretamente a esses três requisitos na ordem especificada?


A

Definir três stages sequenciais (test, build, deploy), configurar o job de test sem restrição de branch, o job de build com a regra de execução restrita à branch main e o job de deploy com restrição à branch main e dependência do stage de build.


B

Definir um stage único com três jobs paralelos (test, build, deploy), configurando os três jobs para execução em qualquer branch e utilizando variáveis de ambiente para selecionar o comportamento de cada job conforme o nome da branch detectada.


C

Configurar os três jobs em um único stage sequencial, com os três jobs executando em qualquer branch, e utilizar scripts Shell dentro de cada job para verificar o nome da branch e decidir se a operação deve ser realizada ou não.


D

Utilizar webhooks externos para acionar os testes automatizados fora do GitLab CI, definindo no .gitlab-ci.yml os jobs de build e deploy, pois o GitLab CI não suporta execução condicional por branch em pipelines nativos.


E

Definir três stages, configurando o job de test com dependência do resultado do deploy para garantir que os testes validem o estado real do ambiente de homologação antes de disponibilizar a versão para a equipe.