【问题标题】:Azure DevOps Release Pipeline - How to get the source code that was used to create the build artifact?Azure DevOps Release Pipeline - 如何获取用于创建构建工件的源代码?
【发布时间】:2022-09-27 19:58:01
【问题描述】:

我有一个连续触发的 Azure DevOps 发布定义,它将已编译的 Angular 应用程序部署到 Web 服务器并运行 Cypress e2e 测试。 Cypress 测试必须针对源代码运行,这意味着我需要一个能够引用用于创建已编译应用程序的相同提交的工件。

我创建了一个获取源代码的 GitHub 工件,但我无法弄清楚如何自动将分支/提交更改为用于已编译应用程序的任何内容(它可以是任何分支,并且名称提前不知道)。 Azure 强制我输入硬编码的分支名称,它不接受通配符或变量。

如果我可以简单地将变量 ${Release.Artifacts.{alias}.SourceBranchName} 用于默认分支,我想我会实现我的目标。由于 Azure 不允许这样做,是否有替代方法可以完成同样的事情?

注意 1:“默认版本”下拉菜单有一个“在发布创建时指定”选项,但它是为手动发布而设计的,不能用于触发的,所以没有运气。

注意 2:我考虑将源代码作为工件发布,但它目前有近 70,000 个文件,并且它增加了一个多小时的构建步骤,所以这也不是一个选项。

    标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-artifacts azure-pipelines-release-task


    【解决方案1】:

    当您使用发布管道工件时,您无法在默认分支字段中设置管道变量。该字段仅支持硬编码。

    是否有另一种方法可以完成同样的事情?

    变量:$(Release.Artifacts.{alias}.SourceBranchName) 可用于 Release Pipeline 代理作业。

    解决方法:

    您可以删除 Github 工件,然后添加命令行任务/PowerShell 任务/Bash 任务来运行 git 命令来克隆目标 repo。

    例如:

    git clone -b $(Release.Artifacts.{alias}.SourceBranchName) GithubRepoURL
    

    PowerShell 示例:

    在这种情况下,脚本将使用与 Build Artifacts 相同的分支来签出源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多