You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps:能否用单个计划管道覆盖所有release开头分支?

如何用单个Azure DevOps计划管道定时运行所有release开头的分支任务

可以通过分支通配符实现,无需为每个release分支单独创建管道或修改YAML配置,具体方案如下:

修改后的YAML配置

将原配置中schedules部分的分支包含规则改为通配符release/*,即可匹配所有以release/开头的分支:

trigger: none
pr: none
pool:
  name: <REDACTED>
  demands:
  - agent.name -equals  <REDACTED>

schedules:
- cron: '0 0 * * *' # 定时任务时区为UTC,瑞典时区需注意偏移
  displayName: Daily nightly build for Sonarqube (code coverage %, general statistics and the dependency-check report)
  branches:
    include:
    - release/* # 通配符匹配所有release/开头的分支,新增分支无需修改此处
  always: true
  
stages:
- stage: InstallJava
  jobs:
    - job:
      workspace:
       clean: all
      steps:
      - task: CmdLine@2
        inputs:
            script: |
              dir
              pwd
              mvn -version
              java -version
              export JAVA_HOME='/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64'
          
      - task: Maven@4
        inputs:
          mavenPomFile: 'pom.xml'
          goals: 'dependency-check:check'
          publishJUnitResults: false
          javaHomeOption: 'path'
          jdkDirectory: '/usr/lib/jvm/java-11-openjdk'
          mavenVersionOption: 'Default'
          mavenAuthenticateFeed: false
          effectivePomSkip: false
          sonarQubeRunAnalysis: false
        
      - task: CmdLine@2
        inputs:
            script: |
              dir
              pwd
      - task: SonarQubePrepare@5
        inputs:
          SonarQube: <REDACTED>
          scannerMode: 'Other'
          extraProperties: |
            sonar.branch.name=$(Build.SourceBranchName)
      - task: Maven@4
        inputs:
          mavenPomFile: 'pom.xml'
          goals: 'clean install'
          publishJUnitResults: false
          javaHomeOption: 'path'
          codeCoverageToolOption: 'JaCoCo'
          jdkDirectory: '/usr/lib/jvm/java-11-openjdk'
          mavenVersionOption: 'Default'
          mavenAuthenticateFeed: false
          effectivePomSkip: false
          sonarQubeRunAnalysis: true
      - task: SonarQubePublish@5
        inputs:
          pollingTimeoutSec: '300'

关键注意事项

  1. 通配符匹配逻辑:release/*会匹配所有以release/为前缀的分支(如release/alpha、release/beta等),后续新增的release分支会自动被纳入定时任务范围,无需修改管道配置。
  2. 管道默认分支设置:建议将管道的默认分支设置为一个长期稳定的分支(如main),这样计划任务会从默认分支读取最新的YAML配置,同时针对所有匹配的release分支执行任务。
  3. 计划视图显示:配置完成后,计划运行视图不会列出所有匹配的分支,但实际会按定时规则对每个符合条件的分支执行任务,可以通过查看管道运行历史确认各分支的执行情况。

内容的提问来源于stack exchange,提问作者Rattletrap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:33:09