diff --git a/helpers/Dojo/AssignmentValidator.ts b/helpers/Dojo/AssignmentValidator.ts index a22d9f61c667f154d5c101ad26f2ebbba02e420a..f9604ab38ee87a67bcc84c6fcc3edd05ca7f5cfe 100644 --- a/helpers/Dojo/AssignmentValidator.ts +++ b/helpers/Dojo/AssignmentValidator.ts @@ -301,12 +301,17 @@ class AssignmentValidator { const runSuccess = SonarAnalyzer.runAnalysis(assignment.sonarKey, assignment.language, assignmentFile.buildLine); if ( runSuccess ) { - this.emitError(`Sonar gate failed`, 'Sonar analysis failure', AssignmentCheckerError.SONAR_ANALYSIS_FAILED); - return; + if ( !assignment.allowSonarFailure ) { + this.emitError(`Sonar gate failed`, 'Sonar analysis failure', AssignmentCheckerError.SONAR_ANALYSIS_FAILED); + return; + } else { + this.endSubStep('Sonar gate failed, you should check the sonar project', false); + } + } else { + this.endSubStep('Sonar gate passed', false); } - this.endSubStep('Sonar gate passed', false); - this.endStep('Sonar analysis success', false); + this.endStep('Sonar analysis finished', false); } diff --git a/models/Assignment.ts b/models/Assignment.ts index 843b6b45e1437379b2bfd4395e0a41331858534b..55dd7f1035bfc98944c224a197636e189fb0ea4c 100644 --- a/models/Assignment.ts +++ b/models/Assignment.ts @@ -13,6 +13,7 @@ interface Assignment { gitlabLastInfoDate: string; published: boolean; useSonar: boolean; + allowSonarFailure: boolean; sonarKey: string; sonarCreationInfo: SonarProjectCreation; language: Language;