【问题标题】:How to access Git source of a build artifact from an Azure DevOps release pipeline如何从 Azure DevOps 发布管道访问构建项目的 Git 源
【发布时间】:2020-08-27 06:07:28
【问题描述】:

我想创建一个发布管道,该管道可以在已通过构建管道测试的代码库上运行(制作发布包)。

如何发布访问已成功完成特定构建管道的 Git 代码库的版本?

注意事项:

  • 制作发布包非常耗时,所以如果可能的话,我不想将它包含到构建中。在我的情况下制作发布包需要源文件(几乎所有)。
  • 我可以通过将整个 Git 存储库复制到构建的构建工件然后使用构建工件来解决此问题,但我不喜欢这样,因为它需要将整个代码库放入工件。
  • 我还试图为发布指定两个工件:一个构建和一个 git,但我不知道如何同步这两者(git 应该使用构建使用的提交)。对于 Git,我可以选择“特定提交”,但我不知道如何在那里指定构建工件的提交。

【问题讨论】:

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


    【解决方案1】:

    如果您为发布指定两个工件:一个构建和一个 git。您可以使用 predefined release variable Release.Artifacts.{alias}.SourceVersion 来同步构建使用的提交和 git 工件的提交。

    此变量Release.Artifacts.{alias}.SourceVersion 返回构建工件的提交哈希。因此,您可以在发布管道中添加脚本任务来签出特定的提交。请参阅以下 powershell 任务中的示例脚本:

    cd  _theGitArtifactsAliasName
    git checkout $(Release.Artifacts._TheBuildArtifactsAliasName.SourceVersion)
    

    那么 git 的工件将在构建工件的提交上。

    【讨论】:

    • 非常适合正常提交!对于 PR 构建它不起作用(无论如何都不需要),但由于它会以这种方式静默保持头部,我在 git checkout 之后添加了 IF ERRORLEVEL 1 exit /b 1 行,因此至少对于 PR 构建它会失败。
    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2019-12-05
    • 2021-01-17
    • 2020-12-23
    • 2020-11-26
    相关资源
    最近更新 更多