如何在 Azure DevOps 的工件部分显示管道工件

How to show pipeline artifact in the artifacts section in Azure DevOps

也许有一个我不明白的基本概念,但在我看来,很明显管道发布的工件出现在名为“ARTIFACTS”的部分中,可以直接从主菜单超级访问并用自己的洋红色图标突出显示。但是不……不是。这让我很困惑。我喜欢 DevOps……其他一切都那么完美,为什么做起来这么复杂?无论如何,抱歉发泄。

问题:是否有任何简单的方法可以直接在 Azure DevOps 的“工件”部分中从管道发布工件?

image-1 : Published pipeline artifact to artifact section

image-2 : What I was expecting in the publishing task

截至目前,我通过 Memu > Pipelines > myPipeline > theDesiredRun > relatedItems > publishedItem > clicArtifactName > downloadWithBrowser 手动检索管道活动。这是一个可行的解决方法,但在团队中加入新成员时,这个过程将很难教授和记录。

我用谷歌搜索了一下,看起来您可以通过创建提要、发布到提要然后订阅来实现。我没有找到任何好的指南,我尝试过但失败了:(

有更简单的方法吗?我错过了一些明显的东西吗?也许我只是没有在管道中使用正确的任务?如果唯一的方法是通过 feed 的东西,那么有人知道 link 来清楚地解释如何去做吗?

谢谢

--莫

因此,Azure DevOps 中有两种形式的工件:

  1. 构建工件:构建和发布以供在发布期间使用的工件。
  2. Azure Artifacts:来自 public 和私人来源的 Maven、npm、NuGet 和 Python 包提要。这些旨在作为共享模块在您的应用程序中使用。如果您熟悉 .NET / dotnetcore。这将是您发布自定义 NuGet 包的地方。

左侧菜单中的“工件”选项卡明确用于自定义包,而不是构建工件。您将永远无法在那里发布构建工件。

阅读@MaxMorrow 的回答后,我现在明白了 Azure DevOps 中的工件部分并不是为我的意图而设计的。但是对于那些仍在寻求实现我在最初问题中提出的要求的人……

这是我实施的解决方法:将构建工件提交到存储库。

我知道这不是一个优雅的解决方案,但它完全满足了我最初的要求,便于查找和下载。它距离 DevOps 中的 Repos 主菜单只有 1 次点击,也可以根据需要通过在任何机器上同步该存储库文件夹并由任何团队成员下载。 (git)

如何:

  • 首先,构建管道中的任务将工件写入 $(Build.SourcesDirectory)\BuildArtifacts\myBuildArtifact_run$(Build.BuildNumber).zip

  • 然后下一个任务是提交到 repos 的命令行脚本:

     echo This is the current working direcotry :  %cd%
    
     echo get worktree list
     git worktree list
    
     echo commit all changes
     git config user.email "joe@contoso.com"
     git config user.name "Automatic Build"
     git checkout master
     git add --all
     git commit -m "pipeline : $(Build.DefinitionName)"
    
     echo push code to repo
     git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin master
    
  • 最后,您将在存储库中找到已提交的工件,位于 root > BuildArtifacts

瞧!