Questão de Engenharia de Software — Geral — CESPE / CEBRASPE 2025
Engenharia de Software›Geral
Código
ce417849
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2025
Cargo
AJ ( )
A respeito de CI/CD (continuous integration/continuous delivery), julgue o próximo item.
No trecho de arquivo .gitlab-ci.yml, utilizado no GitLab CI/CD para definir regras de execução de pipelines, só será criada a pipeline se as três regras de ativação do workflow.rules forem verdadeiras.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
GitLab CI/CD: regras de ativação do workflow
Gabarito: Errado (E). No GitLab CI/CD, as regras definidas em workflow.rules são avaliadas de forma independente e a pipeline é criada se qualquer uma delas for verdadeira (lógica OR), e não se todas forem verdadeiras (lógica AND). O trecho apresentado contém três regras que, na verdade, são alternativas entre si: se o pipeline for originado de um merge request, OU se houver uma tag, OU se o branch for o default, a pipeline será criada.
O workflow.rules é um recurso do GitLab CI/CD que permite controlar quando uma pipeline deve ser criada, avaliando condições baseadas em variáveis predefinidas, como CI_PIPELINE_SOURCE, CI_COMMIT_TAG e CI_COMMIT_BRANCH. A semântica é a mesma das regras de rules em jobs: cada regra é avaliada em ordem, e a primeira que corresponder determina o comportamento. Se nenhuma regra corresponder, a pipeline não é criada (a menos que haja uma regra when: never ou when: always).
Na prática, o trecho do enunciado significa que a pipeline será criada se:
a origem do pipeline for um merge request (CI_PIPELINE_SOURCE == 'merge_request_event'), OU
houver uma tag (CI_COMMIT_TAG definida), OU
o branch atual for o branch padrão (CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH).
Portanto, a pipeline é criada se pelo menos uma das condições for verdadeira, e não se todas forem. A afirmação do item está incorreta ao dizer que "só será criada a pipeline se as três regras forem verdadeiras".
NÃO CAIA NESSA!
A banca inverte a lógica de avaliação das regras: no GitLab CI/CD, as regras de workflow.rules (e também de rules em jobs) são avaliadas com OU (OR) — basta uma condição ser verdadeira para a pipeline ser criada. O candidato desatento pode pensar que é necessário que todas as condições sejam satisfeitas (lógica AND), mas isso está errado. Lembre-se: regras são alternativas, não requisitos cumulativos.
workflow.rules (GitLab CI/CD): Avaliação das regras (Independentes entre si, Lógica OR (qualquer uma), Lógica AND (todas) — errado); Condições alternativas (Merge request (CI_PIPELINE_SOURCE), Tag (CI_COMMIT_TAG), Branch padrão (CI_COMMIT_BRANCH)); Efeito (Pipeline criada se 1+ regra verdadeira, Pipeline não criada se nenhuma regra)
Item — ❌ Errado
A afirmação diz que "só será criada a pipeline se as três regras de ativação do workflow.rules forem verdadeiras". Isso está errado porque as regras são avaliadas de forma independente e a pipeline é criada se qualquer uma delas for verdadeira. No GitLab CI/CD, a lógica é de OR (ou), não de AND (e). Portanto, se apenas uma das condições for atendida (por exemplo, se o pipeline for originado de um merge request), a pipeline será criada, mesmo que as outras duas condições sejam falsas.