1
我試圖創建一個聲明式管道,它並行執行一個數字(可通過參數配置)作業,但我遇到了並行部分的問題。聲明式管道中並行步驟的動態數量
基本上,由於某些原因,下面的管道產生的誤差
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