我创建了以下任务,以查找当前标签,并在构建具有新标签的Docker映像时继续进行下一个任务。
- task: Bash@3
displayName: 'Fetch latest tag from ECR and Create Next Tag.'
inputs:
targetType: 'inline'
script: |
ecrURI=$(ecrURI)
repoName="${ecrURI##*/}"
latestECRTag=$(aws ecr describe-images --output json --repository-name ${repoName} --region $(awsDefaultRegion) --query 'sort_by(imageDetails,& imagePushedAt)[-1].imageTags[0]' | jq . --raw-output)
if [[ -z ${latestECRTag} ]];
then
latestECRTag='0.0.0'
fi
major=$(echo ${latestECRTag} |cut -d'.' -f1)
minor=$(echo ${latestECRTag} |cut -d'.' -f2)
patch=$(echo ${latestECRTag} |cut -d'.' -f3)
latestECRTag="$(expr $major + 1).${minor}.${patch}"
echo $latestECRTag
echo "##vso[task.setvariable variable=NEXT_ECR_TAG;isOutput=true]$latestECRtag"
- bash: |
echo "Started Building Docker Image with tag $latestECRTag"
docker build -t test:latest -f Dockerfile .
docker tag test:latest $(ecrURI):$(NEXT_ECR_TAG)
displayName: 'Build Docker Image with Tag.'
workingDirectory: $(System.DefaultWorkingDirectory)/configCreate/
获取和创建新标签的步骤/任务工作正常,但是一旦我移至下一个基于NEXT_ECR_TAG
构建docker标签的任务,它就会向我显示空值。其他所有内容均已正确填充。
有人可以帮助我找出为什么我无法在下一个任务中获取NEXT_ECR_TAG
值的原因吗?可能是愚蠢的事情,但不知道是什么?
答案 0 :(得分:0)
du!我的时刻。我的变量中有错字。修正拼写错误可以解决所有问题。