Gibt es eine Möglichkeit Jenkins zu brechen bauen, wenn Sonar Quality Gate zusammen mit Sonar-Scanner für MSbuild mit waitForQualityGate() Methode versagt? Ich konnte keine Dokumentation für dasselbe finden. Alles, was ich finden konnte, ist die Verwendung von waitForQualityGate() zusammen mit Sonar-Scanner, aber der allgemeine Sonar-Scanner wird nicht für MSbuild-Projekte empfohlen.waitForQualityGate() mit Sonar-Scanner für MSbuild
Der unten erwähnte Link spricht nicht über die Verwendung von waitForQualityGate mit MSBuild.
Diese Dokumentation spricht über Sonar Scanner, aber ich beziehe mich auf Sonar-Scanner für MSbuild, die insgesamt ein anderer Scanner ist. Die Art, wie ich diesen Scanner benutze, ist wie unten gezeigt.
void beginSonarMSBuild(String VERSION){
stage('Begin Sonar Analysis') {
def MSBuildScannerHome = tool 'sonar-scanner-msbuild-3.0.0.629';
withSonarQubeEnv('civil sonar') {
bat "${MSBuildScannerHome}\\SonarQube.Scanner.MSBuild.exe begin /k:mcdc
/n:mc-design-converter /v:${VERSION}.$BUILD_NUMBER /d:sonar.sourceEncoding=UTF-8
}
}
}
void build(){
stage ('Build'){
bat "Nuget restore SOMEHTING.sln"
bat "MSBuild.exe SOMETHING.csproj "
}
}
void endSonarMSBuild(){
stage ('Complete Sonar Analysis'){
def MSBuildScannerHome = tool 'sonar-scanner-msbuild-3.0.0.629';
bat "${MSBuildScannerHome}\\SonarQube.Scanner.MSBuild.exe end"
}
}
Wenn ich jetzt waitforqualitygate()
mit beginSonarMSBuild(String VERSION)
verwenden, wie unten dargestellt:
void beginSonarMSBuild(String VERSION){
stage('Begin Sonar Analysis') {
def MSBuildScannerHome = tool 'sonar-scanner-msbuild-3.0.0.629';
withSonarQubeEnv('civil sonar') {
bat "${MSBuildScannerHome}\\SonarQube.Scanner.MSBuild.exe begin /k:mcdc
/n:mc-design-converter /v:${VERSION}.$BUILD_NUMBER /d:sonar.sourceEncoding=UTF-8
}
}
stage("Quality Gate"){
timeout(time: 1, unit: 'MINUTES') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
void build(){
scripts here...
}
void endSonarMSBuild(){
scripts here...
}
ich diesen Fehler msg java.lang.IllegalStateException: Unable to get SonarQube task id and/or server name. Please use the 'withSonarQubeEnv' wrapper to run your analysis.
Auch ich die gleichen Fehler, wenn ich waitForQualityGate()
mit endSonarMSBuild()
Schritt verwenden, wie gezeigt unten.
void beginSonarMSBuild(String VERSION){
stage('Begin Sonar Analysis') {
scripts here...
}
void build(){
scripts here...
}
void endSonarMSBuild(){
stage ('Complete Sonar Analysis'){
def MSBuildScannerHome = tool 'sonar-scanner-msbuild-3.0.0.629';
bat "${MSBuildScannerHome}\\SonarQube.Scanner.MSBuild.exe end"
}
stage("Quality Gate"){
timeout(time: 1, unit: 'MINUTES') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
So ist die Frage, die ich habe, ist, nicht Sonar-Scanner für MSBuild unterstützen auch waitForQualityGate()
, wenn ja, dann wie das gleiche benutzen?
ich Ihre Frage wirklich nicht bekommen. Die build schlägt automatisch fehl, wenn der Code das Sonarqualitätsgatter nicht passiert. Und waitForQualityGate() ist die richtige Methode dafür. – arifCee
Aber wo waitForQualityGate()? als Teil von SonarQube.Scanner.MSBuild.exe begin? oder? SonarQube .Scanner.MSBuild.exe End-Schritt? Bitte beachten Sie, dass "Sonar-Scanner" unterscheidet sich von "Sonar-Scanner für MSbuild" –