在 azure-devops 中的发布管道期间创建标签

Eug*_*yer 4 azure-devops

设置

运行发布管道时,我会

  1. 使用构建管道 projectA 的工件(使用存储库 projectA )
  2. 这个工件是一个节点包构建
  3. 我将注入(重新版本)包版本(使用管道变量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-githubcheckout-from-bitbucket使用某种服务连接)。

我假设我需要某种凭据,在我目前的情况下,它将是某种 Github 访问令牌或类似的( oAuth )?

Eri*_*ith 5

所以我不确定您是使用基于 GUI 的版本还是较新的多级管道功能

对于经典发布 GUI,您可以从发布定义编辑器添加一个工件,即您的 Github 存储库。当您添加 Artifact 时,它会要求您将服务连接配置回 github,或者您可以使用现有连接。

在代理作业级别的发布定义编辑器中,您需要确保选中允许脚本访问 OAuth 令牌

在此处输入图片说明

从那里导航到包含您的存储库的发布目录,然后您可以推送标签。

cd $(Agent.ReleaseDirectory)\_enufacas_azureDevOps.Postman
git tag  Rel-$(Build.BuildNumber)
git push --tags
Run Code Online (Sandbox Code Playgroud)

多级管道也有类似的路径,使用checkout 任务