我收到一个错误“*java.lang.NoSuchMethodError:当我运行下面的脚本时,在步骤 *”中没有找到这样的DSL方法阶段。
有人能告诉我为什么以及如何解决这个问题吗?
基本上我需要做我的每个阶段,它必须并行运行。我们可以在声明管道上做吗?
def services = ["A", "B", "C"]
def parallelStagesMap = services.collectEntries {
["${it}" : generateStage(it)]
}
def generateStage(service) {
return {
stage("${service}") {
agent { label 'dotnet-agent' }
environment {
PROJECT = "myProject.${service}"
ARTIFACT_NAME = "${GIT_COMMIT}-${service}.zip"
}
stages {
stage('Build-${service}') {
steps {
include 'automation/jenkins/${service}/buildAndArtifact'
}
}
stage('Test-${service}') {
steps {
dir("src/${PROJECT}.Tests") {
sh("dotnet test ${PROJECT}.Tests.csproj -c ${ASPNETCORE_ENVIRONMENT}")
}
}
}
stage('Deploy-${service}') {
steps {
include 'automation/jenkins/${service}/deploy'
}
}
}
}
}
}
pipeline {
agent { label 'dotnet-agent' }
stages {
stage('Set credentials') {
stages {
stage('Build') {
steps {
script {
parallel parallelStagesMap
}
}
}
}
}
}
}
1条答案
按热度按时间cbwuti441#
我不知道你是否可以像你试图做的那样有嵌套的阶段。
这似乎行得通:
输出: