[英]Jenkins conditionalstep groovy script
我尝试使用此条件多步骤插件并为DSL编写了grrovy脚本,但是当我使用此代码进行引导时,列出的步骤不在条件块之前,所以我在这里做错了什么?
参考: https : //jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.helpers.step.StepContext.conditionalSteps
码:
def configSeed(environment, slaveLabel) {
{ it ->
parameters {
stringParam('BUILD_REQUIRED', 'true', '');
}
scm {
git {
remote {
name('origin');
url('xyz');
refspec('$GERRIT_REFSPEC');
credentials('xyz');
}
branch('$GERRIT_BRANCH');
strategy {
gerritTrigger();
}
}
}
steps {
conditionalSteps {
condition {
stringsMatch('${BUILD_REQUIRED}', 'true', false)
}
runner('Fail')
steps {
environmentVariables {
envs(environment);
}
batchFile('''
call npm install
''');
batchFile('''
call mkdir buildArchive
''');
}
}
}
publishers {
wsCleanup {
includePattern('build/**')
}
}
wrappers {
preBuildCleanup();
timeout {
noActivity(300);
abortBuild();
}
}
label(slaveLabel);
}
};
因此,创建的詹金斯工作显示为
npm install
mkdir buildArchive
Conditional step
代替
Conditional step
{
npm install
mkdir buildArchive
}
我在这里做错了什么?
使用步骤配置生成作业时
job('foobar') {
steps {
conditionalSteps {
condition {
stringsMatch('${BUILD_REQUIRED}', 'true', false)
}
runner('Fail')
steps {
environmentVariables {
envs(FOO: 'bar', TEST: '123')
}
batchFile('call npm install')
batchFile('call mkdir buildArchive')
}
}
}
}
结果似乎很好:
以我的经验,当您对Job DSL语法及其结果有任何疑问时,一个好的方法是对作业的config.xml进行比较:
当我开始使用没有groovy经验的Job DSL时-尤其是闭包;)-当我尝试将作业配置块提取到您所使用的方法中时,我遇到了很多类似的问题。 这就是帮助我了解实际情况的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.