Questão nº 136
Questão de Engenharia de Software · CEBRASPE TCU 25 AUFC 2025 (nº 136)
Considerando a linguagem de programação Java e a cobertura SonarQube, julgue os itens a seguir.
No trecho de código a seguir, a implementação individualizada do QualityGate permite que o resultado do estágio Quality Gate 1 não interrompa o pipeline, caso o resultado da análise do SonarQube seja FAILED, e que ele prossiga normalmente para a execução do estágio SonarQube analysis 2.
01 pipeline {
02 agent any
03 stages {
04 stage('SonarQube analysis 1') {
05 steps {
06 sh 'mvn clean verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar'
07 }
08 }
09 stage("Quality Gate 1") {
10 steps {
11 waitForQualityGate abortPipeline: true
12 }
13 }
14 stage('SonarQube analysis 2') {
15 steps {
16 sh 'gradle sonar'
17 }
18 }
19 stage("Quality Gate 2") {
20 steps {
21 waitForQualityGate abortPipeline: true
22 }
23 }
24 }
25 }
Resposta comentada
O waitForQualityGate com abortPipeline: true faz exatamente o oposto do que o item afirma: ele interrompe o pipeline se o Quality Gate falhar. A pegadinha está em inverter o efeito da configuração: o item diz que o pipeline "não interrompe" e "prossiga normalmente", mas o parâmetro true força a interrupção imediata.
- Correta: Errado. O trecho
waitForQualityGate abortPipeline: trueinterrompe o pipeline quando o SonarQube retorna FAILED, impedindo que o estágio "SonarQube analysis 2" seja executado — o item afirma exatamente o contrário ao dizer que o pipeline "não interrompa" e "prossiga normalmente".
Como ficaria certo: "A implementação individualizada do QualityGate permite que o resultado do estágio Quality Gate 1 interrompa o pipeline, caso o resultado da análise do SonarQube seja FAILED, e que ele não prossiga para a execução do estágio SonarQube analysis 2."
Fonte: CEBRASPE TCU 25 AUFC 2025 Auditor Federal de Controle Externo - Área de Controle Externo / Orientação: Auditoria de Tecnologia da Informação. Reproduzida para fins de estudo.