【问题标题】:Azure DevOps Conditional Build StepAzure DevOps 条件生成步骤
【发布时间】:2019-05-06 05:12:08
【问题描述】:

我有两个项目的解决方案。

Integration.Api
Integration.Common

在 Azure DevOps 中,我有针对 Integration.Api 项目运行的步骤,我也有这些构建步骤来为 Integration.Common 项目创建 NuGet 包:

dotnet Pack Common
dotnet Nuget Push

我应该在“自定义条件”文本框中输入什么内容,以便该步骤仅在 Integration.Common 项目发生更改时运行? IE。如果 Integration.Api 已更改,我仍然希望构建运行,但我只希望在 Integration.Common 已更改时运行 dotnet Pack 步骤。

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    我应该在自定义条件文本框中输入什么,以便仅在 Integration.Common 项目发生更改时才运行该步骤?

    没有这种开箱即用的表达方式。

    但您可以使用powershell脚本将修改后的文件拉出来,并启用相应的变量,然后根据变量的值在自定义条件文本框中添加表达式。

    票务:Conditional build solution in Azure DevOps

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      很确定您需要在构建上设置条件,而不是在步骤上。在要构建通用组件的构建上放置这样的触发条件。

      trigger:
        paths:
          include:
          - /path/to/common/*
      

      https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#triggers

      【讨论】:

      • 但如果 Integration.Api 更新,我希望构建运行。
      • 好吧,反之亦然
      • 无论哪个项目发生变化,我都需要运行构建。在 dotnet 构建步骤之前还有其他构建步骤运行。如果 Common 已更新,我只希望运行 dotnet 构建步骤。
      • 有没有办法检查 dll 的最后修改日期?如果 Integration.Common.dll 的最后修改日期大于当前部署的日期,则运行 dotnet Pack。
      • 您需要将此构建分成 2 个不同的构建并使用包
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2021-04-30
      • 2020-10-28
      相关资源
      最近更新 更多