パラレルで数字の(パラメータで設定可能な)ジョブを実行する宣言型パイプラインを作成しようとしていますが、並列部分に問題があります。宣言型パイプラインの動的なステップ数の動的数
基本的には、いくつかの理由については、以下のパイプラインがエラー
Nothing to execute within stage "Testing" @ line .., column ..
を生成し、私はなぜ理解できない、またはそれを解決する方法について説明します。
import groovy.transform.Field
@Field def mayFinish = false
def getJob() {
return {
lock("finiteResource") {
waitUntil {
script {
mayFinish
}
}
}
}
}
def getFinalJob() {
return {
waitUntil {
script {
try {
echo "Start Job"
sleep 3 // Replace with something that might fail.
echo "Finished running"
mayFinish = true
true
} catch (Exception e) {
echo e.toString()
echo "Failed :("
}
}
}
}
}
def getJobs(def NUM_JOBS) {
def jobs = [:]
for (int i = 0; i < (NUM_JOBS as Integer); i++) {
jobs["job{i}"] = getJob()
}
jobs["finalJob"] = getFinalJob()
return jobs
}
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr:'5'))
}
parameters {
string(
name: "NUM_JOBS",
description: "Set how many jobs to run in parallel"
)
}
stages {
stage('Setup') {
steps {
echo "Setting it up..."
}
}
stage('Testing') {
steps {
parallel getJobs(params.NUM_JOBS)
}
}
}
}
古いパイプラインでこれを行う例はたくさんありますが、宣言的ではありません。 誰かが間違っていることを知っていますか?
なぜ番号を外していますか?それは有用な情報ではありませんか?最小限の例を試しましたか? – StephenKing