azure 对不同的作业使用不同的调度(YAML)

zqdjd7g9  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(97)

我需要设置一个具有2个已定义计划的管道,一个用于在作业1中执行脚本x,一个用于在作业2中执行脚本y。
我也会尝试在代码片段中显示我需要的内容:

schedules:
- cron: '0 16 * * *'
  displayName: 'schedule 1'
  branches:
    include:
    - master
  always: True
- cron: '0 4 * * *'
  displayName: 'schedule 2'
  branches:
    include:
    - master
  always: True


jobs:
- job: job x
  condition: eq( variables.schedule, 'schedule 1')
  ...
- job: job y
  condition: eq( variables.schedule, 'schedule 2')

我定义了这两个调度,它们运行正确,但我似乎不能弄清楚如何使作业“条件”符合当前的运行调度。
我找不到任何关于预定义变量的信息,这些变量说明了时间表。

z0qdvdin

z0qdvdin1#

看起来它应该被分成两个独立的管道,如果他们必须共享其他作业,你可以导入他们作为一个template,以避免代码重复。
如果由于某种原因,它们必须在同一管道中,则可以创建一个简单的脚本,检查当前时间是否更接近schedule 1schedule 2,并根据输出跳过其中一个作业:condition: eq(dependencies.Foo.outputs['CheckTime.skipJob'], 'schedule 1')

相关问题