Azure Pipelines 阶段中每个构建的自定义计划

问题描述 投票:0回答:1

我们面临着单独安排生产阶段的问题,其中我们一天内有多个部署,并且目标是相同的目标服务器。在我们的例子中,部署是唯一的并且彼此不相关,因此开发人员将上传他的代码并手动触发管道并构建代码,并且他希望将部署安排在第二天的非工作时间。 Dev-B 提出代码并进行构建,并希望通过 EOD 将代码发送到产品。由于两个开发人员都使用相同的管道,我无法弄清楚如何在 Azure Pipelines 中制定自定义计划。

我有多阶段的 azure yaml 管道,其中包含构建、QA 和 Prod。我需要一个生产阶段的一次性时间表,每次触发管道时,我都必须传递参数或选择生产阶段的部署时间。即使市场上有任何可用的插件,这也会很有帮助。注意:没有 cron 计划或经典触发器需要人类可读格式的内容。

azure-devops cicd azure-pipelines-yaml azure-deployment
1个回答
0
投票

根据您的情况,建议为每个开发者创建单独的管道,并单独设置调度触发器。

如果你仍然想使用一个管道,你可以尝试使用 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 才会运行。

查看schedules.cron定义中有关计划触发器的详细信息

© www.soinside.com 2019 - 2024. All rights reserved.