Love the guide! Trying it out. Have added the parser with JCasC.
warningsParsers:
parsers:
- name: "NPM Audit Parser"
id: npm-audit
regexp: '\w+\t(\S+)\t(\w+)\t(\S| )+\t((\S| )+)\t(\S+)\t(\S+)'
script: |
import edu.hm.hafner.analysis.Severity
builder.setFileName(matcher.group(7))
.setCategory(matcher.group(4))
.setMessage(matcher.group(6))
.buildOptional()
return builder.buildOptional();
example: "update\tlodash\tlow\tnpm update lodash --depth 9\tPrototype Pollution\t\
https://npmjs.com/advisories/1523\telasticsearch>lodash\tN"
Executing NPM audit in the pipleine like the following.
sh 'mkdir -p results/npm-audit'
sh 'npm audit --parseable > results/npm-audit/result.log || true'
Added the following to a publish stage.
recordIssues(
tool: groovyScript(parserId: 'npm-audit', pattern: 'results/npm-audit/result.log'),
qualityGates: [[threshold: 100, type: 'TOTAL', unstable: true]]
)
But I keep getting the following error. Any ideas?
java.lang.AssertionError: Value is not TRUE
at edu.hm.hafner.util.Ensure.throwException(Ensure.java:169)
at edu.hm.hafner.util.Ensure.access$000(Ensure.java:36)
at edu.hm.hafner.util.Ensure$BooleanCondition.isTrue(Ensure.java:724)
at edu.hm.hafner.util.Ensure$BooleanCondition.isTrue(Ensure.java:735)
at io.jenkins.plugins.analysis.warnings.groovy.GroovyParser.createParser(GroovyParser.java:182)
at io.jenkins.plugins.analysis.warnings.groovy.GroovyParserToolAdapter.createParser(GroovyParserToolAdapter.java:38)
at io.jenkins.plugins.analysis.warnings.groovy.GroovyScript.createParser(GroovyScript.java:50)
at io.jenkins.plugins.analysis.core.model.FilesScanner.<init>(FilesScanner.java:55)
at io.jenkins.plugins.analysis.core.model.ReportScanningTool.scanInWorkspace(ReportScanningTool.java:149)
at io.jenkins.plugins.analysis.core.model.ReportScanningTool.scan(ReportScanningTool.java:131)
at io.jenkins.plugins.analysis.core.steps.IssuesScanner.scan(IssuesScanner.java:101)
at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.scanWithTool(IssuesRecorder.java:681)
at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:646)
at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:617)
at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1024)
at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:985)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE