Questão de Engenharia de Software — Geral — FGV 2025
Engenharia de Software›Geral
Código
fg169120
Banca
FGV
Órgão
MPU
Ano
2025
Cargo
Ana
O analista Carlos gerencia o GitLab do MPU. Carlos adicionou o job microservico_A ao pipeline do projeto A, inserindo no arquivo .gitlab-ci.yml do projeto o seguinte conteúdo: microservico_A: trigger: include: - remote: 'https://gitlab.mpu/grupoA/projetoC/- /raw/main/.gitlab-ci.yml' - project: 'grupoA/projetoB’ ref: 'main' file: 'microservico_b.yml' Considere que os arquivos referenciados são válidos e acessíveis. Com essa configuração, ao ser executado, o job microservico_A irá disparar, ao todo:
Aum novo pipeline do tipo parent-child;
Bum novo pipeline do tipo multi-project;
Cdois novos pipelines do tipo parent-child;
Ddois novos pipelines do tipo multi-project;
Edois novos pipelines dos tipos parent-child e multi-project, respectivamente.
Revelar gabarito e comentário▾
GabaritoA — um novo pipeline do tipo parent-child;
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 – Pipelines Parent-Child e Multi-Project
Gabarito: letra A. O job microservico_A dispara um único pipeline do tipo parent-child, pois a configuração usa apenas a palavra-chave trigger com include contendo um arquivo remoto (remote) e um arquivo de outro projeto (project), ambos dentro do mesmo bloco trigger. Isso cria um pipeline filho a partir do pipeline pai, e não pipelines multi-project, que exigiriam a sintaxe trigger: project: ... sem include.
O GitLab CI/CD oferece duas formas principais de orquestrar pipelines entre projetos: parent-child pipelines e multi-project pipelines. A diferença fundamental está na relação entre os pipelines e na sintaxe utilizada.
Parent-child pipelines são usados quando um pipeline (o pai) dispara um ou mais pipelines filhos, que são executados no mesmo projeto. O pipeline filho pode ser definido em um arquivo separado (via include) ou no próprio .gitlab-ci.yml. A sintaxe típica é:
Quando você usa trigger com include, o GitLab cria um pipeline filho que herda o contexto do pipeline pai, mas é executado como um pipeline separado dentro do mesmo projeto. Isso é útil para dividir um pipeline grande em partes menores e mais gerenciáveis.
Multi-project pipelines, por outro lado, são usados para disparar pipelines em outros projetos. A sintaxe é:
Nesse caso, o pipeline atual dispara um pipeline em outro projeto, e a relação é entre projetos diferentes. Não há include envolvido.
Na questão, o job microservico_A usa trigger com include contendo duas fontes: um arquivo remoto (remote) e um arquivo de outro projeto (project). Ambos são incluídos no pipeline filho, que é criado no mesmo projeto (o projeto A). Portanto, apenas um pipeline parent-child é criado. A inclusão de um arquivo de outro projeto via project não cria um pipeline multi-project; ela apenas importa a definição do pipeline filho de outro repositório, mas o pipeline resultante ainda é um filho do pipeline atual.
1trigger com include
2Parent-child (mesmo projeto)
3trigger com project sem include
4Multi-project (outro projeto)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque a configuração apresentada cria exatamente um pipeline parent-child. O job microservico_A usa trigger com include, que é a sintaxe para criar um pipeline filho. As duas fontes (remote e project) são apenas formas de obter o conteúdo do pipeline filho, mas o resultado é um único pipeline filho no mesmo projeto.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque afirma que será criado um pipeline multi-project. Um pipeline multi-project é criado quando se usa trigger com projectseminclude. Neste caso, como há include, o pipeline é parent-child, não multi-project.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque afirma que serão criados dois pipelines parent-child. A configuração tem apenas um bloco trigger, que cria um único pipeline filho. As duas fontes dentro do include são combinadas em um único pipeline filho, não em dois.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque afirma que serão criados dois pipelines multi-project. Como explicado, a configuração não cria pipelines multi-project, e mesmo que criasse, seria apenas um, não dois.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque afirma que serão criados dois pipelines, um parent-child e um multi-project. A configuração cria apenas um pipeline parent-child. Não há criação de pipeline multi-project.
NÃO CAIA NESSA!
A banca tenta confundir o candidato ao apresentar duas fontes no include (remote e project), fazendo parecer que serão criados dois pipelines. Na verdade, ambas as fontes são usadas para montar um único pipeline filho. O project dentro do include não cria um pipeline multi-project; ele apenas importa a definição do pipeline filho de outro repositório.
PEGA ESSA DICA!
Para diferenciar rapidamente na prova: se o trigger tem include, é parent-child; se o trigger tem projectseminclude, é multi-project. O número de pipelines é igual ao número de blocos trigger no job.