我尝试在不同的环境(dev/prod)中使用不同的代理,使用if- environments指令。但是如果我使用下面的管道脚本,我会得到错误。任何帮助都是非常感谢的!
pipeline {
agent {
if (env.ENVIRONMENT == 'prod') {
label {
label "EC2-1"
customWorkspace "/home/ubuntu/eks-prod-backend/"
}
}
else if (env.ENVIRONMENT == 'dev') {
label {
label "EC2-2"
customWorkspace "/home/ubuntu/eks-dev-backend/"
}
}
}
}发布于 2022-09-09 13:05:01
这就是我建议的方法。例如,在“管道”块之前定义一个变量:
def USED_LABEL = env.ENVIRONMENT == 'prod' ? "EC2-1" : "EC2-2"
def CUSTOM_WORKSPACE = env.ENVIRONMENT == 'prod' ? "/home/ubuntu/eks-prod-backend/" : "/home/ubuntu/eks-dev-backend/"然后,就像这样使用它:
pipeline {
agent {
label USED_LABEL
customWorkspace CUSTOM_WORKSPACE
}}
我不确定是否需要标签里面的标签,但希望你能明白重点。使用管道执行之前指定的变量。
发布于 2022-09-09 12:57:16
也许这样的东西可以帮助你,以防你只有两种环境?
pipeline {
agent {
label {
label env.ENVIRONMENT == 'prod' ? "EC2-1" : "EC2-2"
customWorkspace env.ENVIRONMENT == 'prod' ? "/home/ubuntu/eks-prod-backend/" : "/home/ubuntu/eks-dev-backend/"
}
}
stages {
stage("Build") {
steps {
echo "Hello, World!"
}
}
}
}否则,您可以检查这个thread,这可能会对您有所帮助。
https://stackoverflow.com/questions/73662335
复制相似问题