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:
- A)needs;
Incorreta, porque needs trata da dependência de execução entre jobs, não da lista de jobs de onde serão baixados artefatos.
- B)inherit;
Incorreta, porque inherit serve para herdar configurações do YAML, e não para selecionar artefatos de outros jobs.
- C)extends;
Incorreta, porque extends é usado para reaproveitar e ampliar configurações de jobs, não para definir a origem dos artefatos.
- D)artifacts;
Incorreta, porque artifacts é a seção em que o job gera e publica artefatos, não a seção que indica de quais jobs eles devem ser obtidos.
- E)dependencies.
Correta, porque dependencies define de quais jobs o job atual deve baixar artefatos, exatamente como descrito no enunciado.
Gabarito: E
No GitLab CI/CD, quando um job precisa baixar artefatos gerados por outros jobs, a configuração relevante fica na seção que controla a dependência de artefatos entre jobs. É justamente aí que você informa de quais jobs o job atual deve buscar os arquivos produzidos. Isso ajuda a reduzir transferência desnecessária e deixa o pipeline mais eficiente, porque o GitLab não precisa sair carregando artefato de todo mundo. Na prática, o enunciado diz que o job D precisa dos artefatos dos jobs A e B e que Kléber colocou os nomes desses jobs na subseção usada para especificar de onde os artefatos serão obtidos. Em GitLab CI/CD, essa subseção é dependencies. Ela serve para limitar quais artefatos o job vai baixar dos jobs anteriores que geraram artefatos. A alternativa needs é muito cobrada porque também trata de dependências entre jobs, mas o foco dela é a ordem e a execução no grafo do pipeline, além de poder acelerar o fluxo, não a lista de artefatos a serem baixados. Já artifacts é onde você define o que o job produz e publica, e extends/inherit tratam de herança e reaproveitamento de configuração. Então o gabarito E está correto porque o ajuste descrito no enunciado é exatamente a indicação de quais jobs serão consultados para obter artefatos. Se você lembrar assim, fica fácil: artifacts gera, dependencies busca, needs organiza a execução.