Questão de Engenharia de Software — Github e Gitlab — CESPE / CEBRASPE 2025
- Código
- ce417852
- Banca
- CESPE / CEBRASPE
- Órgão
- SUSEP
- Ano
- 2025
- Cargo
- Ana Tec ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: Certo (C). No GitLab CI, jobs que pertencem ao mesmo estágio (stage) são executados em paralelo por padrão, a menos que haja dependências explícitas configuradas entre eles (como needs ou dependencies). No trecho, os jobs build ruby 1/2 e build ruby 2/2 estão ambos no estágio build, sem qualquer relação de dependência, portanto rodam em paralelo.
O GitLab CI é uma ferramenta de integração contínua e entrega contínua (CI/CD) que automatiza a construção, teste e implantação de software. O coração dessa automação é o arquivo .gitlab-ci.yml, que define um pipeline — uma sequência de estágios (stages) que organizam a execução dos jobs (tarefas). Cada job é uma unidade de trabalho que executa um script em um ambiente específico, e os estágios definem a ordem em que esses jobs são executados.
A regra central de execução é: jobs do mesmo estágio rodam em paralelo; jobs de estágios diferentes rodam em sequência. Isso significa que, se dois jobs estão no mesmo stage, o GitLab CI os executa simultaneamente, aproveitando a capacidade de processamento paralelo. Essa é uma característica fundamental para acelerar pipelines, pois tarefas independentes não precisam esperar umas pelas outras.
No trecho fornecido, ambos os jobs têm stage: build. Não há nenhuma configuração de dependência entre eles — nem needs, nem dependencies, nem before_script que os vincule. Portanto, eles são independentes e serão executados em paralelo. A palavra "por padrão" no enunciado é crucial: o GitLab CI, por padrão, executa jobs do mesmo estágio em paralelo, e essa é a regra que se aplica aqui.
É importante distinguir essa regra de outras ferramentas de CI/CD. Por exemplo, no Jenkins, a execução paralela precisa ser explicitamente configurada (com parallel ou build steps). No GitLab CI, a paralelização é o comportamento padrão para jobs do mesmo estágio, o que simplifica a configuração de pipelines eficientes.
A pegadinha que a banca poderia explorar é a confusão entre estágios e jobs. O candidato pode pensar que, por estarem no mesmo arquivo, os jobs seriam executados em sequência. Mas a regra é exatamente o oposto: mesmo estágio = paralelo; estágios diferentes = sequencial. Guarde essa distinção: é ela que decide esta questão.
A afirmação está correta. Os dois jobs estão no mesmo estágio (build) e não possuem dependências explícitas entre si. No GitLab CI, jobs do mesmo estágio são executados em paralelo por padrão. A configuração de dependências explícitas, como needs ou dependencies, é que alteraria esse comportamento, mas não há nenhuma no trecho.
GitLab CI (documentação oficial):
"Jobs in the same stage run in parallel. Jobs in different stages run in sequence."
Essa é a regra fundamental do GitLab CI. O trecho do arquivo .gitlab-ci.yml não define nenhuma relação de dependência entre os dois jobs, então eles rodam simultaneamente. A palavra "por padrão" reforça que essa é a configuração default, sem necessidade de qualquer ajuste adicional.
Gabarito: Certo (C).
Link permanente: /questoes/ce417852