Questão de Engenharia de Software — Desenvolvimento de Software — FGV 2024
Engenharia de Software›Desenvolvimento 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:
Anão será executado, pois um job não pode ter o mesmo nome de um stage;
Bnão será executado, pois a palavra-chave workflow é inválida;
Cserá executado apenas no clique do botão Run Pipeline na interface do GitLab e nos eventos de push de branches ou de tags;
Dserá executado apenas nos acionamentos via API do GitLab, e nos eventos de push de branches, mas não nos de tags;
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.