我们面临着单独安排生产阶段的问题,其中我们一天内有多个部署,并且目标是相同的目标服务器。在我们的例子中,部署是唯一的并且彼此不相关,因此开发人员将上传他的代码并手动触发管道并构建代码,并且他希望将部署安排在第二天的非工作时间。 Dev-B 提出代码并进行构建,并希望通过 EOD 将代码发送到产品。由于两个开发人员都使用相同的管道,我无法弄清楚如何在 Azure Pipelines 中制定自定义计划。
我有多阶段的 azure yaml 管道,其中包含构建、QA 和 Prod。我需要一个生产阶段的一次性时间表,每次触发管道时,我都必须传递参数或选择生产阶段的部署时间。即使市场上有任何可用的插件,这也会很有帮助。注意:没有 cron 计划或经典触发器需要人类可读格式的内容。
根据您的情况,建议为每个开发者创建单独的管道,并单独设置调度触发器。
如果你仍然想使用一个管道,你可以尝试使用 cron 计划触发器,并使用阶段条件中的预定义变量
Build.CronSchedule.DisplayName
来确定是否运行该阶段。
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- releases/*
exclude:
- releases/ancient/*
stages:
- stage: stage1
# Run this stage only when the pipeline is triggered by the "Daily midnight build" cron schedule
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')
jobs:
- job: job1
steps:
- script: echo Hello from Stage 1 Job 1
在此示例中,仅当管道由每日午夜构建计划触发时,stage1 才会运行。