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:
- A)default;
default serve para definir valores-padrão dos jobs, não para controlar o disparo do pipeline.
- B)include;
include apenas importa outros arquivos de configuração, sem decidir se o pipeline vai iniciar.
- C)stages;
stages organiza a sequência das etapas do pipeline, mas não filtra eventos de execução.
- D)variables;
variables define variáveis de ambiente ou de configuração, não regras de início do pipeline.
- E)workflow.
workflow é a seção usada para definir regras globais de criação do pipeline, como disparo por push de tags.
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.