kis*_*991 25 groovy jenkins jenkins-pipeline multibranch-pipeline
我正在为我的项目运行Multibranch管道.
Jenkinsfile的行为应该根据触发器而改变.有两个触发管道的事件1.推送事件2.拉取请求.
我正在尝试检查环境变量'CHANGE_ID'('CHANGE_ID'仅适用于Pull Request).参考.
因此,如果管道由Push事件触发,并且如果检查'CHANGE_ID'变量则抛出异常(如果管道由Pull Request触发,则代码可以正常工作).
码:
stage('groovyTest'){
node('mynode1') {
if (CHANGE_ID!=NULL){
echo "This is Pull request"
}else{
echo "This is Push request"
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
groovy.lang.MissingPropertyException: No such property: CHANGE_ID for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:5)
at ___cps.transform___(Native Method)
Run Code Online (Sandbox Code Playgroud)
如何检查Jenkinsfile中是否存在'CHANGE_ID'变量?
ari*_*tll 46
您可以在使用之前检查它:
if (env.CHANGE_ID) {
...
Run Code Online (Sandbox Code Playgroud)
来自doc
可从Scripted Pipeline访问的环境变量,例如:
env.PATH或env.BUILD_ID.有关Pipeline中可用的完整且最新的环境变量列表,请参阅内置全局变量参考.
fri*_*mle 16
这就是声明性管道的样子:
pipeline {
// ...
stages {
// ...
stage('Build') {
when {
allOf {
expression { env.CHANGE_ID != null }
expression { env.CHANGE_TARGET != null }
}
}
steps {
echo "Building PR #${env.CHANGE_ID}"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
仅在不构建PR 时运行阶段:
when { expression { env.CHANGE_ID == null } }
Run Code Online (Sandbox Code Playgroud)
小智 6
您还可以使用changeRequest()when 子句中的函数来检查 PR:
when {
anyOf {
changeRequest() // if pull request
branch 'master'
branch 'release/*'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34961 次 |
| 最近记录: |