我已经安装并配置了 SonanarQube Quality Gates 插件,并在非管道作业中成功配置了它。但是当你尝试在 pipline 中配置它时,当我尝试像这样制作 pipline 时,我会遇到不同的错误:
stage ("SonarQube analysis") {
dir('source') {
def scannerHome = tool 'sonscanner';
withSonarQubeEnv('sonar'){
timeout(time: 1, unit: 'HOURS');
withSonarQubeEnv('sonar'){
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我看到这个:
java.lang.IllegalStateException: There is no body to invoke
at org.jenkinsci.plugins.workflow.cps.CpsStepContext.newBodyInvoker(CpsStepContext.java:283)
at org.jenkinsci.plugins.workflow.cps.CpsStepContext.newBodyInvoker(CpsStepContext.java:95)
at org.jenkinsci.plugins.workflow.steps.TimeoutStepExecution.start(TimeoutStepExecution.java:46)
Run Code Online (Sandbox Code Playgroud)
当作为 SonarQube 分析之后的单独步骤时:
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') { // Just in case something goes wrong, …Run Code Online (Sandbox Code Playgroud) 我需要在jenkins 中自动生成package.json,并且真的坚持了下来。
以下sed命令在管道中工作,但它更改了第二个字段,我需要更改第三个字段:
sed -i "/version/s/\\([.]\\)\\(.\\)\\(.*\\)/\\1${BUILD_NUMBER}\\3/" package.json
Run Code Online (Sandbox Code Playgroud)
输出:
"version": "0.222.0"
Run Code Online (Sandbox Code Playgroud)
但是我需要:
"version": "0.0.222"
Run Code Online (Sandbox Code Playgroud)
json输入的一部分:
{
"name": "render",
"version": "0.0.0"
"description": "",
"main": "./dist/index.js",
"bin": {
"render-ne": "./bin/re"
},
Run Code Online (Sandbox Code Playgroud)
谁能提供帮助?