Pular para o conteúdo principal

Questão de Engenharia de Software — Ferramentas de Desenvolvimento de Software — FGV 2023

Engenharia de SoftwareFerramentas de Desenvolvimento de Software
Código
fg065322
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
A analista Ana configurou o pipeline MainPipe no GitLab CI/CD da PGM de Niterói. O MainPipe possui um único job, o BuildJob, que automatiza o processo de build da aplicação PGMApp. O build de PGMApp é realizado em um container Docker e demanda a execução de um banco de dados em outro container Docker. A fim de aproveitar os recursos de integração do GitLab CI/CD com o Docker, Ana especificou as imagens Docker necessárias ao build diretamente no arquivo .gitlab-ci.yml do MainPipe, no trecho associado ao BuildJob.Logo, Ana especificou a imagem Docker para o build e a imagem Docker para o banco de dados, respectivamente, nas subseções do .gitlab-ci.yml:
  1. Aimage e services;
  2. Bimage e artifacts;
  3. Cworkflow e services;
  4. Dworkflow e artifacts;
  5. Eartifacts e workflow.
Revelar gabarito e comentário

GabaritoA — image e services;

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 – Especificação de imagens Docker

Gabarito: letra A. No GitLab CI/CD, a subseção image define a imagem Docker do container principal do job, enquanto services define containers auxiliares (ex.: banco de dados) que rodam em paralelo. Logo, para o build usa-se image; para o banco de dados, services. Essas são as duas subseções corretas.

A banca testa o conhecimento da sintaxe YAML do .gitlab-ci.yml, em especial as palavras-chave disponíveis dentro de um job. A armadilha está em confundir services com artifacts (que armazenam arquivos entre jobs) ou workflow (que controla a execução do pipeline como um todo).

.gitlab-ci.yml (job)
  • 1image
    • Container principal (build)
  • 2services
    • Containers auxiliares (banco de dados)
  • 3artifacts
    • Arquivos entre jobs (não é imagem)
  • 4workflow
    • Controle do pipeline (nível superior)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

image e services são as subseções corretas. image especifica a imagem do container principal (build) e services especifica containers adicionais (banco de dados). Respeita a documentação oficial do GitLab.

Alternativa B — ❌ Incorreta

artifacts não serve para especificar imagens Docker; serve para definir arquivos que devem ser preservados após o job (ex.: binários, relatórios). A confusão comum é trocar services por artifacts.

Alternativa C — ❌ Incorreta

workflow é uma palavra-chave de nível superior (não dentro de um job) usada para controlar a execução do pipeline (ex.: regras de quando executar). Não define imagens de containers.

Alternativa D — ❌ Incorreta

Tanto workflow quanto artifacts não se aplicam à especificação de imagens. Ambos são usados em contextos diferentes (controle de pipeline e armazenamento de artefatos, respectivamente).

Alternativa E — ❌ Incorreta

Novamente, artifacts e workflow não definem containers. A ordem inversa (artifacts primeiro) também não faz sentido.

NÃO CAIA NESSA!

Cuidado para não confundir services (containers auxiliares) com artifacts (arquivos gerados) ou workflow (controle do pipeline). A banca explora essa troca exatamente nas alternativas B, C, D e E.

Gabarito: letra A.

Link permanente: /questoes/fg065322