← Questões de Engenharia de Software

Engenharia de Software · FGV · 2023

Questão comentada de Engenharia de Software

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:

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.

Continue treinando

Questões relacionadas