Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — FGV 2024

Engenharia de SoftwareDesenvolvimento de Software
Código
fg101725
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Técnico Judiciário - Área Administrativa - Especialidade: Desenvolvimento de Sistemas de Informação
Considere o seguinte arquivo .gitlab-ci.yml, que define um pipeline no GitLab CI/CD:workflow:rules:- if: $CI_PIPELINE_SOURCE == "web"- if: $CI_PIPELINE_SOURCE == "push"stages:- primeiroprimeiro:stage: primeiroscript:- echo "Executando..."O pipeline do GitLab CI/CD descrito acima:
  1. Anão será executado, pois um job não pode ter o mesmo nome de um stage;
  2. Bnão será executado, pois a palavra-chave workflow é inválida;
  3. Cserá executado apenas no clique do botão Run Pipeline na interface do GitLab e nos eventos de push de branches ou de tags;
  4. Dserá executado apenas nos acionamentos via API do GitLab, e nos eventos de push de branches, mas não nos de tags;
  5. Eserá executado apenas nos acionamentos via WebHooks registrados no GitLab, e nos eventos de push de branches, mas não nos de tags.
Revelar gabarito e comentário

GabaritoC — será executado apenas no clique do botão Run Pipeline na interface do GitLab e nos eventos de push de branches ou de tags;

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 – Workflow Rules e Fontes de Pipeline

Gabarito: letra C. O pipeline definido será executado apenas quando a fonte do pipeline for "web" (clique no botão Run Pipeline) ou "push" (eventos de push em branches ou tags). As regras em workflow controlam a criação do pipeline, e a configuração apresentada é válida e comum.

O arquivo .gitlab-ci.yml utiliza a palavra-chave workflow com a seção rules para definir em quais condições o pipeline deve ser criado. As duas regras são: if: $CI_PIPELINE_SOURCE == "web" e if: $CI_PIPELINE_SOURCE == "push". Isso significa que o pipeline será gerado somente quando o pipeline for iniciado manualmente pela interface web (Run Pipeline) ou por um push de código (que inclui tanto branches quanto tags). Não há restrições adicionais quanto a branches ou tags: a variável CI_PIPELINE_SOURCE é definida como "push" para qualquer push, independentemente de ser branch ou tag.

Alternativa A — ❌ Incorreta

Afirma que o job não pode ter o mesmo nome do stage. No GitLab CI/CD, não há essa restrição: um job pode ter qualquer nome, inclusive igual ao do stage. O nome do job é apenas um identificador, e o stage é definido pelo campo stage.

Alternativa B — ❌ Incorreta

Afirma que a palavra-chave workflow é inválida. Na verdade, workflow é uma palavra-chave válida e amplamente utilizada no GitLab CI/CD para controlar a execução do pipeline como um todo, permitindo definir regras globais.

Alternativa C — ✅ Correta ⟵ GABARITO

Descreve exatamente as duas fontes configuradas: "web" (Run Pipeline) e "push" (push de branches e tags). Não há exclusão de tags, e a API e WebHooks são fontes diferentes, não contempladas aqui.

Alternativa D — ❌ Incorreta

Diz que o pipeline será executado apenas por API e push de branches, excluindo tags. A regra push abrange tanto branches quanto tags, e a fonte "web" não é a API – a API gera CI_PIPELINE_SOURCE == "api".

Alternativa E — ❌ Incorreta

Afirma que a execução ocorre apenas por WebHooks e push de branches, excluindo tags. Novamente, a fonte "web" não é WebHook (que seria CI_PIPELINE_SOURCE == "webhook"), e o push inclui tags.

NÃO CAIA NESSA!

A banca tenta confundir as diferentes fontes de pipeline (web vs api vs webhook) e o alcance do evento push, que inclui tanto branches quanto tags. Lembre-se: no GitLab, push cobre todos os pushes, e a interface web é o "Run Pipeline", não a API.

Gabarito: letra C

Link permanente: /questoes/fg101725