如何计算 groovy 中的美元表达式并存储值
How to evaluate a dollar expression in groovy and store the value
我需要使用我的 Jenkinsfile groovy 在 AWS 中检索任务定义的修订版。下面的代码在 shell 脚本下对我有用,但我一直无法让它为我的 Jenkinsfile groovy 工作。 props.region 等其他变量来自属性文件,我已经使用了这些变量:-
def call(Map config=[:]) {
def deployDefinition = libraryResource "deployDefinitions/ecs/${config.deployApplication}/${config.deployEnvironment}.properties"
def props = readProperties(text:deployDefinition)
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: "${props.awsCreds}", secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
def newimageurl = "${props.registry}/${props.imagename}:${IMAGE_TAG}"
def oldimageurl = "${props.registry}/${props.imagename}"
sh "sed -i -e 's#${oldimageurl}#${newimageurl}#' ./taskdef.json"
sh "aws ecs register-task-definition --family ${props.family} --cli-input-json file://${WORKSPACE}/taskdef.json --region ${props.region}"
REVISION=$(aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision)
sh "aws ecs update-service --cluster ${props.cluster} --region ${props.region} --service ${props.service_name} --task-definition ${props.task_def_name}:$REVISION"
}
}
REVISION=$(aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision)
我正在寻找的是如何检索 REVISION 的实际值,以便我可以在更新服务的下一个命令中传递该值
我能够使用以下方法实现此功能:-
sh "aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision > output.txt"
def REVISION = readFile "${WORKSPACE}/output.txt"
sh "aws ecs update-service --cluster ${props.cluster} --region ${props.region} --service ${props.service_name} --task-definition ${props.task_def_name}:$REVISION"
我需要使用我的 Jenkinsfile groovy 在 AWS 中检索任务定义的修订版。下面的代码在 shell 脚本下对我有用,但我一直无法让它为我的 Jenkinsfile groovy 工作。 props.region 等其他变量来自属性文件,我已经使用了这些变量:-
def call(Map config=[:]) {
def deployDefinition = libraryResource "deployDefinitions/ecs/${config.deployApplication}/${config.deployEnvironment}.properties"
def props = readProperties(text:deployDefinition)
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: "${props.awsCreds}", secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
def newimageurl = "${props.registry}/${props.imagename}:${IMAGE_TAG}"
def oldimageurl = "${props.registry}/${props.imagename}"
sh "sed -i -e 's#${oldimageurl}#${newimageurl}#' ./taskdef.json"
sh "aws ecs register-task-definition --family ${props.family} --cli-input-json file://${WORKSPACE}/taskdef.json --region ${props.region}"
REVISION=$(aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision)
sh "aws ecs update-service --cluster ${props.cluster} --region ${props.region} --service ${props.service_name} --task-definition ${props.task_def_name}:$REVISION"
}
}
REVISION=$(aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision)
我正在寻找的是如何检索 REVISION 的实际值,以便我可以在更新服务的下一个命令中传递该值
我能够使用以下方法实现此功能:-
sh "aws ecs describe-task-definition --task-definition ${props.task_def_name} --region ${props.region} | jq .taskDefinition.revision > output.txt"
def REVISION = readFile "${WORKSPACE}/output.txt"
sh "aws ecs update-service --cluster ${props.cluster} --region ${props.region} --service ${props.service_name} --task-definition ${props.task_def_name}:$REVISION"