Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — FGV 2023

Arquitetura de SoftwareArquitetura de Software
Código
fg071496
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
O analista Kléber gerencia os pipelines do Gitlab CI/CD do TCE SP. No pipeline do projeto TCEMóvel, o job D precisa dos artefatos que foram gerados pelos jobs A e B. Para minimizar o tempo gasto com a transferência de artefatos, Kléber modificou a seção do .gitlab-ci.yml que define o job D, adicionando os nomes dos jobs A e B à subseção que especifica de quais jobs devem ser obtidos artefatos.Na definição do job D, Kléber modificou a subseção:
  1. Aneeds;
  2. Binherit;
  3. Cextends;
  4. Dartifacts;
  5. Edependencies.
Revelar gabarito e comentário

GabaritoE — dependencies.

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: dependencies vs needs

Gabarito: letra E. No GitLab CI/CD, a subseção que especifica de quais jobs devem ser obtidos artefatos é dependencies. O job D precisa dos artefatos gerados por A e B, portanto Kléber deve adicionar os nomes A e B à lista de dependencies do job D.

A banca cobra o conhecimento das palavras‑chave do .gitlab-ci.yml. Cada alternativa corresponde a uma seção diferente:

  • needs: define a ordem de execução dos jobs, mas não transfere artefatos automaticamente. Pode ser usada junto com dependencies.

  • inherit: herda variáveis globais ou de outros jobs, não artefatos.

  • extends: reutiliza a configuração de outro job (herança de definições), não de artefatos.

  • artifacts: especifica quais arquivos serão armazenados como artefatos após a execução do job, mas não determina de onde obter artefatos de jobs anteriores.

  • dependencies: lista os jobs cujos artefatos devem ser baixados antes da execução do job atual. É exatamente o que o enunciado descreve.

1artifacts
Produz (upload) artefatos
2dependencies
Consome (download) de jobs específicos
3needs
Ordena execução (paralelismo)
4inherit
Herda variáveis/globais
5extends
Reutiliza configuração de outro job
GitLab CI/CD: palavras-chave
LEVELsoulevel.com.br
GitLab CI/CD: palavras-chave: artifacts (Produz (upload) artefatos); dependencies (Consome (download) de jobs específicos); needs (Ordena execução (paralelismo)); inherit (Herda variáveis/globais); extends (Reutiliza configuração de outro job)

Alternativa A — ❌ Incorreta

needs controla a ordem de execução (paralelismo/dependência de pipeline), mas não garante a transferência de artefatos. Para obter artefatos, mesmo com needs, é necessário usar dependencies.

Alternativa B — ❌ Incorreta

inherit é usado para herdar variáveis ou configurações globais, não artefatos.

Alternativa C — ❌ Incorreta

extends permite reaproveitar blocos de configuração (como before_script ou variables), não artefatos.

Alternativa D — ❌ Incorreta

artifacts define quais arquivos são salvos como artefatos, não de onde obtê-los.

Alternativa E — ✅ Correta ⟵ GABARITO

dependencies lista explicitamente os jobs cujos artefatos devem ser baixados. A documentação do GitLab diz: "By default, all artifacts from previous stages are passed, but you can use the dependencies keyword to define a limited list of jobs to fetch artifacts from."

PEGA ESSA DICA!

Lembre‑se da função de cada palavra‑chave:

  • artifacts → produz (upload)

  • dependencies → consome (download) de jobs específicos

  • needs → ordena (sem necessariamente transferir artefatos)

Gabarito: letra E.

Link permanente: /questoes/fg071496