如果我想每月运行一次计划任务来检查过时的依赖项,但我已经有一个 CI 管道,我该怎么做?例如,我有一个通过代码嗅探 -> checkmarx + twistlock -> 部署到开发 -> 阶段和诸如此类运行的管道。这会在 master 上触发。我还想包括让dependabot的计划任务每月发生一次的能力。如何将此计划任务混合到已建立的 CI 管道中?这也都包含在 Azure Devops 中。
我只想每月运行一次dependabot的单个任务。我不想每个月运行一次整个管道
如果我想每月运行一次计划任务来检查过时的依赖项,但我已经有一个 CI 管道,我该怎么做?例如,我有一个通过代码嗅探 -> checkmarx + twistlock -> 部署到开发 -> 阶段和诸如此类运行的管道。这会在 master 上触发。我还想包括让dependabot的计划任务每月发生一次的能力。如何将此计划任务混合到已建立的 CI 管道中?这也都包含在 Azure Devops 中。
我只想每月运行一次dependabot的单个任务。我不想每个月运行一次整个管道
您可以使用触发器和计划运行管道。
例如,要在每个月的第一天 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
我建议创建第二个 - 完全独立的 - 管道来每月运行一次dependabot。
这样,您可以为 CI 管道设置适当的触发器,并为依赖管道设置适当的计划,每个任务中都包含正确的任务,并且没有重复。