0

내 응용 프로그램을 빌드 한 Jenkins 파이프 라인 작업이 있습니다. 음파 분석을 수행 한 다음 mvn deploy으로 ou Nexus에 배포 한 품질 게이트입니다.Jenkins Plugin "Sonarqube scanner"에서 가능한 모든 반환 값은 무엇입니까?

초기 설정 만합니다 (official doc에서 가져온) 성공의 경우에 게시했다 :

stage("Quality Gate"){ 
     timeout(time: 1, unit: 'HOURS') { 
      def qg = waitForQualityGate() 
      if (qg.status != 'OK') { 
       error "Pipeline aborted due to quality gate failure: ${qg.status}" 
      } 
     } 
    } 

을 이제 우리는 약간에게 젠킨스의 논리 게이트를 변경하려면 우리는 경우에 게시하고 싶습니다 오류는 없습니다 (예 : 경고가 허용됨). 이를 위해

나는에 젠킨스 satge 변경 :

stage("Quality Gate"){ 
    timeout(time: 1, unit: 'HOURS') { 
     def qg = waitForQualityGate() 
     if (qg.status == 'Error') { 
      error "Pipeline aborted due to quality gate failure: ${qg.status}" 
     } 
    } 
} 

stage('Deploy to Nexus') { 
    sh "mvn deploy -DskipTests" 
} 

하지만 지금, 제대로 작동하는 것 같다하지 않습니다 내 프로젝트에도 항상 품질 게이트 SonarQube에 오류가 넥서스에 푸시됩니다.

qg.status != 'OK' || qg.status != 'Warning' 

누구든지 에러 상태 (그리고 아마도 다른 값)의 정확한 값이 무엇인지 알고 :

나는 조건을 변경하여 가능한 해결 방법이 있나요?

답변

0

설명서가 불완전한 것으로 보이고 올바른 반환 값을 추측하는 것 외에 다른 방법이 없습니다.

하는 등의 문제를 방지하기 위해이 같은 정확한 사건없이 테스트하는 것이 좋습니다 : 'ERROR'

if ('error'.equalsIgnoreCase(qg.status)) { 
    error "Pipeline aborted due to quality gate failure: ${qg.status}" 
} 

내 스크립트가 제대로 작동 등의 조건을 사용하여, 다음 반환 된 값이 모든 자본 경우에 보인다 .

0

그것은 SonarQube 관리 설정에서 Webhooks를 통해 구성 할 수있다 : https://docs.sonarqube.org/display/SONAR/Webhooks

그래서, 당신은 확인 또는 실패에 대한 모든 게이트웨이 규칙에 대해 구성한 어떤 방법으로 돌아갑니다.

+0

이것은 경계선 [링크 전용 답변] (// meta.stackexchange.com/q/8231)입니다. 여기에 많은 정보를 포함 시키려면 답을 넓히고 참고 용으로 만 링크를 사용해야합니다. – FrankerZ

+0

FrankerZ, 당신이 구성한 것은 무엇이든 반환한다는 자체 설명문입니다. 하지만 업데이트 할게, 고마워. – AlexGera