Jenkinsパイプラインを作成しています。このパイプラインは3つのジョブを構築しています(JobOne、JobTwo、JobThree)。私は次のコードでジョブを実行することができます。Jenkinsパイプラインジョブ(条件付き)
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'
}
ここにいくつか条件を入れたいと思います。たとえば、JobOneが失敗すると、ジョブはもう一度再起動する必要があります。 JobTwoがパスしたら、ジョブをもう一度実行します。 JobThoが完了してから10分後にJobThreeを実行する必要があります。私はこの状態でパイプラインを作る方法がわかりません。私はジェンキンスのパイプラインを初めて熟知しています。
私はいくつかのJenkins WiKiページをチェックしましたが、上記の条件の条件で実装する適切な方法を見つけることができませんでした。私は、if条件をどのように実装できるかを調べるために以下のコードを試してみました。しかしそれは失敗する。
node {
stage 'Stage 1'
echo 'Hello World 1'
build 'Pipeline-Test/JobOne'
post {
always{
build 'Pipeline-Test/JobOne'
}
}
エラー:
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)
誰かがこのを通じて私を導いてくださいことはできますか?
ありがとうございます!
おかげトンクリストファー!! :)私は確かにそれにダイビングを取るだろう。私はこれに完全に新しく、道を見つけることができませんでした。再度、感謝します。上記の手順を試してみます。 – Raji
こんにちはクリストファー。 JobOneはうまくいっています。それは期待どおりに動作しますが、10分後に実行する必要があるtirdジョブは、次のエラーで失敗しています。groovy.lang.MissingPropertyException:クラス:WorkflowScriptのMINUTESはありません。私はこれについてオンラインで確認しています。何か考えがあるなら、私に知らせてください。 – Raji
私は睡眠(30)だけ与える場合は動作します。私はユニットではなく時間だけを渡すと意味します。ユニット(MINUTES、MILLISECONDS)を渡すと、上記のエラーがスローされます。 – Raji