Questão de Engenharia de Software — Gerência de Configuração — FCC 2026
Engenharia de Software›Gerê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 é
Aexecutar periodicamente um comando docker build em servidor dedicado sem observar eventos de versionamento no repositório.
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.
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.
Ddefinir um arquivo de pipeline declarativo no repositório, como .github/workflows/ci.yml ou .gitlab-ci.yml, descrevendo jobs automatizados.
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.
1Push na branch principal
2Pipeline declarativo (YAML)
3Build da imagem Docker
4Testes automatizados
5Publicação no registry
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).