Pular para o conteúdo principal

Questão de Engenharia de Software — Gerência de Configuração — FCC 2026

Engenharia de SoftwareGerência de Configuração
Código
gp044440
Banca
FCC
Órgão
MPE-AL
Ano
2026
Cargo
Analista do Ministério Público - Especialidade: Desenvolvimento de Sistemas
Uma equipe de desenvolvimento mantém uma aplicação web conteinerizada e versionada em um repositório Git hospedado no GitHub. A equipe deseja implementar uma prática de Integração Contínua e Entrega Contínua (CI/CD) para que, a cada push realizado na branch principal, sejam executados automaticamente: (i) build da imagem Docker, (ii) execução de testes automatizados e (iii) publicação da imagem validada em um registry, com posterior deploy em ambiente de homologação. Considerando o uso do GitHub Actions ou GitLab CI como ferramentas de automação, a abordagem tecnicamente adequada para implementar esse fluxo é
  1. Aexecutar periodicamente um comando docker build em servidor dedicado sem observar eventos de versionamento no repositório.
  2. Bconfigurar um ambiente de homologação permanente com atualização manual da aplicação em situações que o time considerar que a versão está estável.
  3. Cconfigurar um script local de build e testes executado manualmente pelo desenvolvedor antes de cada commit, mantendo o repositório como armazenamento de código-fonte.
  4. Ddefinir um arquivo de pipeline declarativo no repositório, como .github/workflows/ci.yml ou .gitlab-ci.yml, descrevendo jobs automatizados.
  5. Ehabilitar webhooks no repositório para notificar desenvolvedores sobre novos commits, delegando a execução de build e testes a cada membro da equipe.
Revelar gabarito e comentário

GabaritoD — definir um arquivo de pipeline declarativo no repositório, como .github/workflows/ci.yml ou .gitlab-ci.yml, descrevendo jobs automatizados.

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”.

CI/CD com GitHub Actions / GitLab CI

Gabarito: letra D. A prática moderna de Integração Contínua e Entrega Contínua (CI/CD) exige que o pipeline seja definido como código no próprio repositório, utilizando arquivos como .github/workflows/ci.yml (GitHub Actions) ou .gitlab-ci.yml (GitLab CI). Esses arquivos descrevem jobs automatizados (build, testes, publicação, deploy) que são executados automaticamente a cada push na branch principal — exatamente o fluxo descrito no enunciado.

  1. 1Push na branch principal
  2. 2Pipeline declarativo (YAML)
  3. 3Build da imagem Docker
  4. 4Testes automatizados
  5. 5Publicação no registry
  6. 6Deploy em homologação
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Executar um docker build periodicamente em servidor dedicado não observa eventos de versionamento e não atende ao requisito de execução automática a cada push. Trata-se de uma abordagem manual e reativa, sem integração com o repositório.

Alternativa B — ❌ Incorreta

Manter um ambiente de homologação permanente com atualização manual contraria o princípio de automação contínua. A equipe deseja que o deploy seja automático após cada push aprovado, não manual quando o time achar estável.

Alternativa C — ❌ Incorreta

Configurar um script local executado manualmente pelo desenvolvedor antes de cada commit ainda depende de ação humana. A CI/CD exige que os passos sejam gatilhados automaticamente pelo repositório, não manualmente.

Alternativa D — ✅ Correta ⟵ GABARITO

Definir um pipeline declarativo no repositório (.github/workflows/ci.yml ou .gitlab-ci.yml) é a abordagem tecnicamente adequada. O arquivo YAML descreve os jobs (build Docker, testes, publicação em registry, deploy em homologação) e é executado automaticamente pelo serviço de CI/CD a cada push na branch principal. Isso segue o princípio de Pipeline as Code, essencial em DevOps.

Alternativa E — ❌ Incorreta

Habilitar webhooks para notificar desenvolvedores apenas informa sobre novos commits, mas não automatiza a execução de build, testes e deploy. A responsabilidade ainda recai sobre cada membro da equipe, o que é ineficiente e sujeito a falhas humanas.

PEGA ESSA DICA!

Em concursos, lembre-se de que a essência da CI/CD é a automação baseada em eventos do repositório (push, pull request, etc.) e a definição do pipeline como código no próprio projeto. Ferramentas como GitHub Actions e GitLab CI seguem esse padrão declarativo (YAML).

Gabarito: letra D.

Link permanente: /questoes/gp044440