【问题标题】:Create a tag during a release pipeline in azure-devops在 azure-devops 中的发布管道期间创建标签
【发布时间】:2020-01-28 17:57:54
【问题描述】:

设置

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

  1. 使用 build-pipeline 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)?

【问题讨论】:

    标签: azure-devops


    【解决方案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 没问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2023-01-20
    • 2020-03-31
    相关资源
    最近更新 更多