案例:我有一个azure Devops管道,它将代码部署到PRODDUCTION。它将标签名称(由开发人员在主分支提交时创建的标签)作为输入,因此它只能部署来自主分支的特定版本的代码。此管道设置为无自动触发器,开发人员在主分支中标记提交&将该标记名称提供给运营团队,以将其作为运行时参数输入(管道的输入)
我使用azure devops管道的部署任务中的签出步骤来签出代码。
deploy:
steps:
- checkout: git://MY_PROJECT/MY_REPO@refs/tags/${{variables.tag_name}}查询:如何(在部署前)确保此标签仅来自主分支,而不是来自其他非主分支。(开发者也可以在主分支上创建标签)
我知道我们可以使用'git commit --包含‘和'git describe’这样的脚本,但是我们如何有效地处理它,以及围绕它的任何建议和最佳实践。
发布于 2021-08-14 09:26:44
您是否尝试过:
trigger:
- master您还可以使用powershell步骤来控制该版本中使用"Build.SourceBranch“系统变量链接的工件的源代码分支
发布于 2021-08-25 19:36:10
我遇到了完全相同的问题。我通过添加以下检查作为部署管道中的第一步来解决这个问题。
steps:
- checkout: self
clean: true
persistCredentials: true
- bash: |
set -e
COMMIT_ID=$(Build.SourceVersion)
BRANCH=master
git checkout $BRANCH
RES=$(git branch --contains $COMMIT_ID)
if [[ -z $RES ]]; then
exit 1
fi
exit 0
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/')基本上,我们检查标记的提交是否在主分支上。如果没有,部署管道将在此时失败,而不会部署代码的标记版本。
https://stackoverflow.com/questions/68775559
复制相似问题