在 azure-devops 中的发布管道期间创建标签
Posted
技术标签:
【中文标题】在 azure-devops 中的发布管道期间创建标签【英文标题】:Create a tag during a release pipeline in azure-devops 【发布时间】:2020-01-28 17:57:54 【问题描述】:设置
在运行发布管道时,我会这样做
-
使用 build-pipeline projectA 的工件(使用存储库 projectA)
这个工件是一个节点包构建
我将注入(重新版本)包版本(使用管道变量
VERSION
),然后作为最后一步发布到 npm 注册表
目标
除了所有的构建/发布任务都有效之外,我们还有一个特定的问题,那就是发布步骤中缺少的checkout of the repository
。我们不想让存储库真正“重建”某些东西,而是为了标记我们使用变量 $VERSION
构建的提交并将其推送到存储库。
问题
我确实知道如何获取源项目存储库构建的 commit hash
(env var Build.SourceVersion
) 和存储库名称 (env var Build.Repository.Name
),但我不明白我实际上将如何获取存储库由于我错过了凭据,因此已签出。
现在我在 Github 上有存储库(私有存储库),但可能也会转移到私有 Bitbucket。
实际的具体问题是,如何使用
签出存储库 使用静态名称 或使用Build.Repository.Name
还有
一般任务(一些 git repo) 或特定的 SCM 存储库任务(例如checkout-from-github
或 checkout-from-bitbucket
使用某种服务连接)。
我假设我需要某种凭据,在我目前的情况下,它将是某种 Github 访问令牌或类似的 (oAuth)?
【问题讨论】:
【参考方案1】:所以我不确定您使用的是基于 GUI 的版本还是更新的 multi-stage pipeline feature。
对于经典版本 GUI,您可以从 release definition editor 添加一个 Artifact,它是您的 Github 存储库。当您添加 Artifact 时,它会要求您将服务连接配置回 github,或者您可以使用现有连接。
在代理作业级别的发布定义编辑器中,您需要确保选中允许脚本访问 OAuth 令牌
从那里导航到包含您的存储库的发布目录,然后您可以推送标签。
cd $(Agent.ReleaseDirectory)\_enufacas_azureDevOps.Postman
git tag Rel-$(Build.BuildNumber)
git push --tags
多级流水线也有类似的路径,使用checkout task
【讨论】:
这个问题更多了,非常感谢!我不知道多级管道,也会研究一下! @EugenMayer 没问题!以上是关于在 azure-devops 中的发布管道期间创建标签的主要内容,如果未能解决你的问题,请参考以下文章
Yaml Azure Devops TerraformInstaller 不明确
Azure DevOps - 是不是可以为特定日期和时间安排发布?