我嘗試使用 if-else inside agent 指令為不同的環境(dev/prod)使用不同的代理。但是,如果我使用下面的管道腳本,我會遇到錯誤。任何幫助深表感謝!!
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/"
}
}
}
}
uj5u.com熱心網友回復:
這是我建議的方法。在“管道”塊之前定義一個變數,例如:
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
}
}
我不確定是否需要標簽內的標簽,但希望你明白這一點。使用在管道執行之前指定的變數。
uj5u.com熱心網友回復:
如果您只有兩個環境,也許這樣的事情可以幫助您?
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!"
}
}
}
}
否則,您可以查看此執行緒,這可能會對您有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/508714.html
