← Questões de Engenharia de Software

Engenharia de Software · FGV · 2022

Questão comentada de Engenharia de Software

O analista Mateus configurou um pipeline CI/CD para o projeto TJApp no GitLab. O repositório de TJApp denomina-se TJAppRepo. Mateus precisou controlar o comportamento do pipeline de TJApp condicionando o início de sua execução aos eventos de push de tags para o TJAppRepo. Para aplicar essa condição ao pipeline de TJApp, Mateus precisou modificar o arquivo .gitlab-ci.yml na raiz de TJAppRepo, adicionando uma regra na seção:

Gabarito: E

No GitLab CI/CD, o arquivo .gitlab-ci.yml funciona como a receita do pipeline. Ali você diz quais jobs existem, em que ordem eles rodam, quais variáveis entram em cena e, principalmente neste caso, quando o pipeline deve ou não iniciar. É aqui que o jogo fica esperto: nem todo push precisa disparar tudo, e você pode filtrar eventos como push de branch, merge request ou tag. A questão fala exatamente de condicionar o início da execução aos eventos de push de tags no repositório. Esse tipo de controle é feito na seção workflow, que define regras para criar ou não o pipeline como um todo. Ou seja, antes mesmo de pensar em stages e jobs, você decide se o pipeline nasce naquele evento. Por isso o gabarito é a alternativa E. No GitLab, o workflow: rules é o mecanismo indicado para controlar a criação do pipeline com base em eventos, como push de tag. A própria documentação do GitLab trata workflow como a camada de decisão global do pipeline, enquanto as regras dos jobs vêm depois, em nível mais granular. As outras seções não servem para esse filtro de disparo inicial. default ajusta padrões de jobs, include importa arquivos, stages organiza as etapas e variables define variáveis. Nenhuma delas faz o papel de liga/desliga do pipeline com base no evento de tag.

Continue treinando

Questões relacionadas