0

如果我想每月运行一次计划任务来检查过时的依赖项,但我已经有一个 CI 管道,我该怎么做?例如,我有一个通过代码嗅探 -> checkmarx + twistlock -> 部署到开发 -> 阶段和诸如此类运行的管道。这会在 master 上触发。我还想包括让dependabot的计划任务每​​月发生一次的能力。如何将此计划任务混合到已建立的 CI 管道中?这也都包含在 Azure Devops 中。

我只想每月运行一次dependabot的单个任务。我不想每个月运行一次整个管道

4

2 回答 2

0

您可以使用触发器和计划运行管道。

例如,要在每个月的第一天 08:00 UTC 运行一个阶段,您可以使用:

 trigger:
- master  #This is the trigger for other stages. It is not needed for the scheduled stage.

schedules:
- cron: '0 8 1 * *'
  displayName: 'Deploy every 1st day of every month at 08:00Z'
  branches:
    include:
    - master
  always: true

然后,为确保特定阶段作为计划运行的一部分运行,请使用条件表达式,例如:

- stage: 'Test'
  displayName: 'Deploy to the test environment'
  dependsOn: Dev
  condition: eq(variables['Build.Reason'], 'Schedule')

有关计划语法的更多信息,请参阅此 MSDocs 文章:https ://docs.microsoft.com/en-us/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml#scheduled-triggers

于 2022-01-10T17:25:52.623 回答
0

我建议创建第二个 - 完全独立的 - 管道来每月运行一次dependabot。

这样,您可以为 CI 管道设置适当的触发器,并为依赖管道设置适当的计划,每个任务中都包含正确的任务,并且没有重复。

于 2022-01-10T23:37:11.673 回答