Questão de Engenharia de Software — Github e Gitlab — FCC 2025
Engenharia de Software›Github e Gitlab
Código
fc150555
Banca
FCC
Órgão
TRT 2
Ano
2025
Cargo
AJ TRT2
Uma Analista, que está criando um pipeline no GitLab CI/CD, deve criar o arquivo .gitlab-ci.yml na raiz do repositório e definir nesse arquivo
Aas pull requests e actions do pipeline.
Bas máquinas que executam os jobs do pipeline.
Ctodas as versões anteriores do repositório.
Dos estágios (stages) e os jobs do pipeline.
Eas branches para novas funcionalidades.
Revelar gabarito e comentário▾
GabaritoD — os estágios (stages) e os jobs do pipeline.
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: o arquivo .gitlab-ci.yml
Gabarito: letra D. O arquivo .gitlab-ci.yml, colocado na raiz do repositório, é o coração da configuração do GitLab CI/CD: é nele que se definem os estágios (stages) e os jobs do pipeline, organizando as etapas de build, teste e deploy. As demais alternativas descrevem conceitos de outras ferramentas ou aspectos que não são configurados nesse arquivo.
O GitLab CI/CD é uma plataforma de integração e entrega contínua integrada ao GitLab. O pipeline é a execução automatizada de um conjunto de tarefas, e o arquivo .gitlab-ci.yml (escrito em YAML) é o documento que descreve toda essa estrutura. Nele, você define:
stages: a sequência lógica de fases do pipeline (ex.: build, test, deploy). Os jobs são agrupados por estágio, e os estágios definem a ordem de execução.
jobs: as tarefas individuais que serão executadas, cada uma com seu script, imagem, dependências, etc.
Por exemplo, um pipeline simples pode ter os estágios build, test e deploy. No estágio build, um job compila o código; no test, outro job roda os testes automatizados; no deploy, um terceiro job publica a aplicação. O arquivo YAML declara tudo isso de forma declarativa.
A banca explora a confusão entre ferramentas de CI/CD: GitHub Actions usa arquivos .github/workflows/*.yml e conceitos de workflows, jobs e steps; Jenkins usa o Jenkinsfile; o GitLab usa o .gitlab-ci.yml. Além disso, termos como "pull requests" e "branches" são do controle de versão, não da configuração do pipeline.
Guarde a distinção: o .gitlab-ci.yml define o que o pipeline faz (estágios e jobs), não onde ele roda (máquinas), nem o histórico do repositório, nem as branches de desenvolvimento. É esse critério que separa a alternativa correta das demais.
GitLab CI/CD (.gitlab-ci.yml)
1Define
Stages (ordem: build, test, deploy)
Jobs (tarefas com script, imagem)
2Não define
Pull requests (Git)
Actions (GitHub)
Runners (máquinas)
Histórico de versões (Git)
Branches (Git)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Menciona "pull requests" e "actions". Pull requests são um recurso de colaboração do Git (solicitação de merge), e actions é o nome do serviço de CI/CD do GitHub, não do GitLab. No GitLab, o equivalente a "actions" são os jobs do pipeline, mas o arquivo .gitlab-ci.yml não define pull requests — isso é feito na interface do GitLab ou via API.
Alternativa B — ❌ Incorreta
As máquinas que executam os jobs são os runners do GitLab. Eles são configurados separadamente (instalados e registrados no projeto ou no grupo), não no .gitlab-ci.yml. O arquivo pode indicar qual tag de runner usar (via tags), mas não define as máquinas em si.
Alternativa C — ❌ Incorreta
O .gitlab-ci.yml não armazena "todas as versões anteriores do repositório". O histórico de versões é gerenciado pelo Git (controle de versão), e o arquivo de pipeline apenas descreve a automação. Ele pode referenciar commits ou branches, mas não guarda o histórico.
Alternativa D — ✅ Correta ⟵ GABARITO
É exatamente isso: o .gitlab-ci.yml define os estágios (stages) e os jobs do pipeline. Os estágios organizam a ordem de execução (ex.: build, test, deploy), e os jobs são as tarefas que rodam em cada estágio. Essa é a função central do arquivo.
Alternativa E — ❌ Incorreta
As branches para novas funcionalidades são um conceito do Git (ramificações do código). O .gitlab-ci.yml pode ter regras condicionais baseadas em branches (ex.: rodar o pipeline apenas na branch main), mas não é o local onde se definem as branches — isso é feito com comandos Git ou na interface do GitLab.
NÃO CAIA NESSA!
Para não confundir as ferramentas de CI/CD, lembre-se do arquivo de configuração de cada uma: GitLab → .gitlab-ci.yml (define stages e jobs); GitHub Actions → .github/workflows/*.yml (define workflows, jobs e steps); Jenkins → Jenkinsfile (define stages e steps). Na prova, quando a questão falar de "pull requests" ou "actions", pense em GitHub; quando falar de "runners", pense em GitLab.