【问题标题】:Reuse Azure DevOps pipeline for GitHub release为 GitHub 发布重用 Azure DevOps 管道
【发布时间】:2019-12-10 17:30:21
【问题描述】:
我已经有一个现有的Azure DevOps pipeline。每当一个新的提交被推送到相应的GitHub repo 并执行所有仪式(build、test 等)时,它就会被触发。
现在我想设置发布。每当推送的提交被标记为release-v* 时,就必须进行发布。这应该执行与已经指定的相同的仪式,但最终会在 GitHub 上发布。
实现这一目标的最佳方法是什么?我需要复制我的管道吗?我可以重复使用吗?
【问题讨论】:
标签:
github
azure-devops
azure-pipelines
【解决方案1】:
我最终得到了以下构建配置:
trigger:
- master
- release
# All the other YAML stuff
- task: PublishGitHubRelease@0
inputs:
applicationName: 'TheApplication'
gitSourceOption: 'github'
token: '$(GitHubPAT)'
repo: 'TheRepository'
owner: 'TheOwner'
tagName: 'v$(build.buildNumber)'
releaseName: 'v$(build.buildNumber)'
draft: false
prerelease: false
assetsPattern: '$(Build.SourcesDirectory)/*'
displayName: 'Create GitHub release'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/release'))
现在我有两个不同的分支:master 和 release。两个分支都会触发构建配置,但最终任务 PublishGitHubRelease 将仅针对 release 分支执行。最后一行condition: 负责。对于一个版本,我正在做一个从master 到release 的快进合并。
这不是我最喜欢的解决方案,但现在还可以。