【问题标题】:How to show pipeline artifact in the artifacts section in Azure DevOps如何在 Azure DevOps 的工件部分显示管道工件
【发布时间】:2021-03-12 04:46:16
【问题描述】:

也许有一个我不明白的基本概念,但在我看来,由管道发布的工件应该很明显出现在名为“工件”的部分中,该部分可直接从主菜单超级访问并突出显示带有自己的洋红色图标。但不……它没有。这让我很困惑。我喜欢 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 手动检索管道活动。这是一种可行的解决方法,但在加入团队中的新成员时,教导和记录此过程会很痛苦。

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

有没有更简单的方法?我错过了什么明显的东西吗?也许我只是没有在管道中使用正确的任务?如果唯一的方法是通过提要,那么有没有人知道一个关于如何做的明确解释的链接?

谢谢

--mo

【问题讨论】:

    标签: azure-devops azure-pipelines azure-artifacts


    【解决方案1】:

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

    1. 构建工件:构建和发布以供发布期间使用的工件。
    2. Azure Artifacts:来自公共和私有来源的 Maven、npm、NuGet 和 Python 包源。这些设计为在您的应用程序中作为共享模块使用。如果您熟悉 .NET / dotnetcore。您可以在此处发布自定义 NuGet 包。

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

    【讨论】:

    • 感谢您的澄清。使用正确的词汇确实很重要。您是否知道发布构建工件的任何其他位置,这比嵌套在每次运行中的管道工件位置更容易访问?
    • 不幸的是,这就是微软为我们提供的全部工作。不幸的是,没有编写自定义脚本将构建工件推送到外部位置,运行中可用的管道工件是您唯一的选择。
    【解决方案2】:

    阅读 @MaxMorrow 的回答后,我现在了解到 Azure DevOps 中的 Artifacts 部分并非按照我的意图设计。但是对于那些仍在寻求实现我在最初问题中所要求的内容的人......

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

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

    如何:

    • 首先,构建管道中的任务将工件写入 $(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

    瞧!

    【讨论】:

    • 嗨@Marc-OlivierLegris,感谢您分享您的经验并发布答案。我建议您可以将您的答案标记为该主题的解决方案。这对于正在寻找类似问题的解决方案的其他人也可能非常有帮助。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2019-08-01
    相关资源
    最近更新 更多