有一种执行前提条件的方式,它应该从文件中加载构建参数。在詹金斯(Jenkins)中,有一个选项可以使我们重新启动各个阶段。因此,我希望每个阶段都可以从groovy文件中加载参数。
当前是
pipeline {
agent any
stage("Grep the values") {
steps {
load "${WORKSPACE}/file-parameter.groovy"
}
}
stage("Perform Deploynment) {
when {
expression { "${Perform_Deployment}" == "true" }
}
steps {
withCredentials([
usernamePassword(credentialsId: "LoginID", passwordVariable: "LoginPassword", usernameVariable: "LoginUser")
]) {
ansiblePlaybook (
playbook: "${WORKSPACE}/ansible-playbook.yml",
forks: 5,
extraVars: [
loginUser: "${LoginUser}",
loginPassword: "${LoginPassword}"
]
)
}
}
}
}
}
在出现条件之前,如何在阶段加载“ $ {WORKSPACE} /file-parameter.groovy”。我的期望应该如下所示
pipeline {
agent any
stage("Grep the values") {
steps {
load "${WORKSPACE}/file-parameter.groovy"
}
}
stage("Perform Deploynment) {
load "${WORKSPACE}/file-parameter.groovy"
when {
expression { "${Perform_Deployment}" == "true" }
}
steps {
withCredentials([
usernamePassword(credentialsId: "LoginID", passwordVariable: "LoginPassword", usernameVariable: "LoginUser")
]) {
ansiblePlaybook (
playbook: "${WORKSPACE}/ansible-playbook.yml",
forks: 5,
extraVars: [
loginUser: "${LoginUser}",
loginPassword: "${LoginPassword}"
]
)
}
}
}
}
}
答案 0 :(得分:0)
load
步骤返回执行脚本时返回的常规脚本,因此您需要将其存储在变量中
file-parameter.groovy
可能看起来像这样:
return [
performDeployment: true,
// other variables
]
或这样
performDeployment = true
// other variables and methods
return this
在两种情况下,您都可以像这样在管道中使用它:
stage("Grep the values") {
steps {
script {
fileParams = load("${WORKSPACE}/file-parameter.groovy")
}
}
}
stage("Perform Deploynment) {
when {
expression { fileParams.performDeployment }
}
我敢肯定,您不需要进行字符串比较,而可以只使用布尔值。