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

时间:2020-01-28 17:57:54

标签: azure-devops

设置

在运行发布管道时,我会这样做

  1. 使用构建管道projectA(使用存储库projectA)的工件
  2. 此工件是一个节点包构建
  3. 我将注入(版本化)软件包版本(使用管道变量VERSION),然后作为最后一步释放到npm注册表中

目标 除了所有构建/发布任务正常工作之外,我们还有一个特定的问题,那就是发布步骤中缺少的checkout of the repository。我们不想让存储库实际“重建”某些东西,但是为了标记提交,我们使用变量$VERSION构建并将其推送到存储库中。

问题

我确实知道如何获取源项目存储库版本(env var commit hash)和存储库名称(env var Build.SourceVersion)的Build.Repository.Name,但是我不知道如何我实际上会把存储库检出,因为我错过了凭据。

现在,我在Github上有一个存储库(私有存储库),尽管可能也移到了私有Bitbucket。

实际的具体问题是,如何用

检出存储库
  • 使用静态名称
  • 或使用Build.Repository.Name

  • 一个通用任务(一些git repo)
  • 或特定的SCM回购任务(例如checkout-from-githubcheckout-from-bitbucket使用某种服务连接)。

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

1 个答案:

答案 0 :(得分:4)

因此,我不确定您使用的是基于GUI的发行版还是较新的multi-stage pipeline feature

对于经典发行版GUI,您可以从release definition editor添加一个Artifact,它是您的Github存储库。当您添加Artifact时,它将要求您将服务连接配置回github,或者您可以使用现有连接。

在“代理作业”级别的版本定义编辑器中,您将需要确保检查允许脚本访问OAuth令牌

enter image description here

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

cd $(Agent.ReleaseDirectory)\_enufacas_azureDevOps.Postman
git tag  Rel-$(Build.BuildNumber)
git push --tags

使用checkout task

的多级管道也具有相似的路径
相关问题