Raj*_*aji 4 groovy if-statement jenkins jenkins-pipeline
我正在创建一个Jenkins管道.这条管道正在建立三个工作岗位(JobOne,JobTwo,JobThree).我可以使用以下代码运行作业.
node {
stage 'Stage 1'
echo 'Hello World 1'
build 'Pipeline-Test/JobOne'
stage 'Stage 2'
echo 'Hello World 2'
build 'Pipeline-Test/JobTwo'
stage 'Stage 3'
echo 'Hello World 3'
build 'Pipeline-Test/JobThree'
}
Run Code Online (Sandbox Code Playgroud)
现在我想在其中加入一些条件.例如,当JobOne失败时,作业必须再次重新启动.当JobTwo通过时,想再次运行工作.JobTh完成后,JobThree应在10分钟后运行.我不确定如何使用这种情况制作管道.我是詹金斯管道的新手.
我检查了几个Jenkins WiKi页面,但是如果条件符合上述条件,则找不到合适的方法.我尝试下面的代码只是为了检查'if'条件是如何实现的.但它失败了.
node {
stage 'Stage 1'
echo 'Hello World 1'
build 'Pipeline-Test/JobOne'
post {
always{
build 'Pipeline-Test/JobOne'
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
java.lang.NoSuchMethodError: No such DSL method 'post' found among [archive, bat, build, catchError, checkout, checkpoint, deleteDir, dir, dockerFingerprintFrom, dockerFingerprintRun, echo, error, fileExists, git, input, isUnix, load, mail, node, parallel, properties, publishHTML, pwd, readFile, retry, sh, sleep, sshagent, stage, stash, step, teamconcert, timeout, tool, triggerRemoteJob, unarchive, unstash, waitUntil, withCredentials, withDockerContainer, withDockerRegistry, withDockerServer, withEnv, wrap, writeFile, ws]
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:107)
Run Code Online (Sandbox Code Playgroud)
有人可以指导我这个吗?
提前致谢!
詹金斯管道肯定有学习曲线,所以不要气馁:)
我建议任何人开始使用Jenkins Pipelines,查看Jenkins的官方文档以及Pipeline Steps Reference页面.
仅供参考,stageš 没有块参数被弃用 ; 你应该stage按如下方式定义s:
stage('Name of Stage') {
// code
}
Run Code Online (Sandbox Code Playgroud)
管道具有重试步骤,JobOne如果失败,您可以使用该步骤重试构建.
要在第2阶段和第3阶段之间等待10分钟,您可以使用睡眠步骤.
if语句的编写方式与Java类似,因为Groovy实际上是在JVM上编译的.
if (animal == 'dog' || boolean == true) {
Run Code Online (Sandbox Code Playgroud)
结合其中的每一个,我认为这是你可以使用的:
node {
stage ('Stage 1') {
echo 'Hello World 1'
retry(1) {
build 'Pipeline-Test/JobOne'
}
}
stage ('Stage 2') {
echo 'Hello World 2'
build 'Pipeline-Test/JobTwo'
}
sleep time:10, unit:"MINUTES"
stage ('Stage 3') {
echo 'Hello World 3'
build 'Pipeline-Test/JobThree'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14170 次 |
| 最近记录: |