簡體   English   中英

Azure DevOps Pipeline - 我可以根據一天中的時間運行不同的任務嗎?

[英]Azure DevOps Pipeline - Can I run different tasks based on time of day?

我的倉庫中有兩個 python 文件。 使用 azure 管道,我希望 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

有關更多詳細信息,您可以參考此文檔: Scheduled triggers and Expressions

更新:

您可以使用兩個單獨的管道來使用這些文件。

這是一個例子:

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

創建管道時,您可以選擇 YAML 文件來創建管道。

在此處輸入圖像描述

根據我的評論,您可以使用其他 cron 設置創建第二個管道,這非常簡單:

您可以在一個存儲庫中創建任意數量的 Devops 構建管道。

如果你拋出創建 Buid Pipeline 的正常步驟,Azure Devops 將創建一個新的 azure-pipelines-*.yml 文件(第一個文件名為 azure-pipelines.yml)

新管道

默認文件名是 azure-pipelines.yml,但如果您願意,也可以稍后重命名該文件:

項目設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM