我的仓库中有两个 python 文件。使用天蓝色管道,我希望 file1 在一天中的一个特定时间运行,并且希望 file2 在其余时间的顶部运行。
我目前在 azure_pipeline.yml 文件中定义了一项作业,其中一项任务正在运行 file1。如何根据上述条件调整作业或任务以运行任一文件?
如何根据上述条件调整作业或任务来运行任一文件?
您可以使用计划触发器和
system.pipelinestarttime
变量来设置条件或 if 表达式。
system.pipelinestarttime变量的格式:
2022-06-30 03:13:20+00:00
这是一个例子:
schedules:
- cron: " 1 * * * *"
displayName: Daily midnight build
branches:
include:
- main
always: true
pool:
vmImage: ubuntu-latest
steps:
- ${{ if and(eq(variables['Build.Reason'], 'Schedule'), contains(variables['system.pipelinestarttime'], 'time for example: 3:14')) }}:
- task: file 1
- ${{ else }}:
- task: file 2
更新:
您可以通过两个单独的管道来使用这些文件。
这是一个例子:
YAML 1:
schedules:
- cron: " * 1 * * *"
displayName: specific hour
branches:
include:
- main
always: true
pool:
vmImage: ubuntu-latest
steps:
- task: file 1
YAML 2
schedules:
- cron: " 1 * * * *"
displayName: Other hours
branches:
include:
- main
always: true
pool:
vmImage: ubuntu-latest
steps:
- task: file 2
创建Pipelines时,可以选择YAML文件来创建Pipeline。
您可以在管道中定义两个计划并为它们指定不同的 DisplayName,然后将条件添加到您的作业或任务中
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Schedule1')