传递函数参数给字符串groovy文件Jenkins管道



我有一个将数据上传到S3的Jenkins管道。S3目的地应该根据分支是否是主分支而有所不同。到目前为止,我已经在build.groovy文件中尝试了这个:

import lib.Constants
def s3Deploy() {
script {
if(env.BRANCH_NAME == 'master') {
s3Deploy_func('codebase')
}
else {
s3Deploy_func('new_codebase')
}
}
}
def s3Deploy_func(String s3_folder) {
sh '''
aws s3 cp "$WORKSPACE/" s3://${BUCKET_NAME}/$s3_folder --profile ${PROFILE} --recursive
'''
}
return this

成功覆盖变量Workspace、bucket_name和profile。但是,s3_folder总是空的。我也尝试过${s3_folder},它仍然是一样的。我怎么解决这个问题呢?由于

我认为应该用双引号"""代替''',${s3_folder}代替{s3_folder}

所以修复应该是

sh """
aws s3 cp "$WORKSPACE/" s3://${BUCKET_NAME}/${s3_folder} --profile ${PROFILE} --recursive
"""

最新更新