有没有一种很好的方法来提交更改文件并在基于 azure DevOps yaml 的管道中创建标签?
我的场景将是基于节点 js 的构建:每次构建,它将通过使用更改 package.json 版本npm version patch
最后,它将 package.json 推送到构建分支(显然条件是 branch==master)并将标记并推送一个分支。
肮脏的方式可以是:
- bash : |
git add filename.ext
git push origin HEAD:branchName
git tag -a tagName -m 'tag message'
git push --tags
displayName: 'Git Commit and Tag from pipeline'
Run Code Online (Sandbox Code Playgroud)
您可以在 yaml 构建步骤中执行此操作,但重要的是您需要管道拥有执行推送的权限,最简单的方法是在结账时保留凭证,如下所示。
然后,您需要授予项目集合构建服务 创建标签和贡献(添加/删除文件)权限。
我还发现我必须设置工作目录才能使推送工作
steps:
# Check out the code and keep the token so we can tag the repository
- checkout: self
persistCredentials: true
--- rest of pipeline
# Tag the current branch with the version number
- script: |
git add filename.ext
git push origin
git tag -a tagName -m 'tag message'
git push --tags
workingDirectory: $(Build.SourcesDirectory)
displayName: 'Git Commit and Tag from pipeline'
Run Code Online (Sandbox Code Playgroud)
您是对的,要在 azure devops 管道中提交更改并推送到源代码库,您可能必须在脚本任务中运行 git 命令。
在脚本任务中,您在 repo clone url 中的 accountName 需要替换为以$(System.AccessToken)进行身份验证(例如https://$(System.AccessToken)@dev.azure.com/yourOrg/yourProj/_git/repoName)。
您可以查看下面的示例来标记和推送一个 azure 分支。
- bash: |
git config --global user.email "your@email.com"
git config --global user.name "yourUsername"
#git add filename.ext
git add .
git commit -m "message"
git push https://$(System.AccessToken)@dev.azure.com/yourOrg/yourProj/_git/repoName HEAD:master -q
git tag -a tagName -m 'tag message'
git push https://$(System.AccessToken)@dev.azure.com/yourOrg/yourProj/_git/repoName tagName
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |