Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — CESPE / CEBRASPE 2025

Engenharia de SoftwareDesenvolvimento de Software
Código
ce215089
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Especialidade: Análise de Sistemas
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.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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 de pipeline

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 das regras for verdadeira (comportamento OR), não se todas forem verdadeiras (AND). O enunciado inverte a lógica de avaliação, que é o erro central da afirmação.

O GitLab CI/CD é uma ferramenta de integração e entrega contínua que permite automatizar etapas do desenvolvimento de software, como build, teste e deploy. A configuração é feita em um arquivo YAML chamado .gitlab-ci.yml, que define a estrutura dos pipelines e dos jobs. Dentro desse arquivo, a chave workflow:rules controla quando um pipeline deve ser criado, permitindo, por exemplo, executar pipelines apenas em determinadas branches, tags ou quando há alterações em arquivos específicos.

A lógica de workflow:rules segue o mesmo princípio das rules de jobs: cada regra é uma lista de condições, e a pipeline é criada se pelo menos uma das regras for satisfeita. Ou seja, as regras são combinadas com OU (OR), não com E (AND). Se o desenvolvedor quiser que todas as condições sejam exigidas, ele deve colocá-las dentro de uma única regra, não em regras separadas. Por exemplo:

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      changes:
        - 'src/**/*'

Nesse caso, a pipeline só é criada se a fonte for um merge request e houver alterações em src/. Mas se houver duas regras separadas, como:

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - changes:
        - 'src/**/*'

A pipeline será criada se a fonte for merge request ou se houver alterações em src/ — qualquer uma das condições basta.

A pegadinha da banca está exatamente nessa inversão: o candidato que conhece a sintaxe do GitLab CI/CD sabe que workflow:rules usa lógica OR, mas pode se confundir com a palavra "regras" e pensar que todas precisam ser verdadeiras. Na prática, a documentação oficial do GitLab é clara: "A pipeline é criada se qualquer uma das regras for avaliada como verdadeira". Portanto, a afirmação está errada.

NÃO CAIA NESSA!

A banca troca a lógica de avaliação das regras: no GitLab CI/CD, workflow:rules usa OR (qualquer regra verdadeira cria a pipeline), não AND (todas verdadeiras). O candidato que não conhece a sintaxe pode cair na armadilha de achar que a palavra "regras" implica exigência cumulativa.

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á incorreto porque, no GitLab CI/CD, as regras de workflow:rules são avaliadas de forma independente e a pipeline é criada se qualquer uma delas for verdadeira (comportamento OR). Para exigir que todas as condições sejam verdadeiras, elas devem ser agrupadas em uma única regra, não em regras separadas. Portanto, o item é ERRADO.

Gabarito: Errado (E).

Link permanente: /questoes/ce215089