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

Azure DevOps Server下用CLI批量触发多分支构建可行吗?

批量触发Azure DevOps Server分支构建的解决方案

你的需求完全可以实现,报错原因是Azure CLI的DevOps扩展仅支持云端Azure DevOps Services,不支持本地部署的Azure DevOps Server,换用以下两种方式即可完成批量触发:

方法一:Bash脚本调用REST API(适配原脚本环境)

Azure DevOps Server提供REST API可直接触发构建,只需准备好有权限的个人访问令牌(PAT),权限需包含「队列构建」权限。

修改后的Bash脚本示例:

#!/bin/bash

# 配置参数,替换为你的实际信息
ADO_SERVER_URL="http://your-devops-server:8080/tfs/YourCollection"
PROJECT_NAME="YourTestProject"
BUILD_DEFINITION_ID="123"  # 替换为你的构建定义ID,可从构建定义页面URL获取
PAT="your-personal-access-token"

# 对PAT进行Base64编码(API认证需要)
ENCODED_PAT=$(echo -n ":$PAT" | base64)

# 分支列表
branches=(
  "BRANCH-001"
  "BRANCH-002"
  "BRANCH-003"
  "BRANCH-004"
  "BRANCH-005"
  "BRANCH-006"
  "BRANCH-007"
  "BRANCH-008"
)

# 循环触发构建
for branch in "${branches[@]}"
do
  echo "正在触发分支 $branch 的构建..."
  curl -X POST "$ADO_SERVER_URL/$PROJECT_NAME/_apis/build/builds?api-version=6.0" \
    -H "Authorization: Basic $ENCODED_PAT" \
    -H "Content-Type: application/json" \
    -d '{
          "definition": {"id": '$BUILD_DEFINITION_ID'},
          "sourceBranch": "refs/heads/'$branch'"
        }'
  echo -e "\n"
done

方法二:PowerShell脚本(适合Windows环境)

使用Azure DevOps PowerShell模块更直观,步骤如下:

  1. 安装模块:
Install-Module -Name AzureDevOps -Force
  1. 批量触发脚本:
# 配置参数
$adoServerUrl = "http://your-devops-server:8080/tfs/YourCollection"
$projectName = "YourTestProject"
$buildDefinitionId = 123
$pat = "your-personal-access-token"
$branches = @(
  "BRANCH-001",
  "BRANCH-002",
  "BRANCH-003",
  "BRANCH-004",
  "BRANCH-005",
  "BRANCH-006",
  "BRANCH-007",
  "BRANCH-008"
)

# 连接到Azure DevOps Server
Connect-AzDevOps -Server $adoServerUrl -PersonalAccessToken $pat -Project $projectName

# 循环触发构建
foreach ($branch in $branches) {
  Write-Host "触发分支 $branch 的构建..."
  New-AzDevOpsBuild -DefinitionId $buildDefinitionId -SourceBranch "refs/heads/$branch"
}

注意事项

  • PAT权限:确保PAT拥有目标项目的「队列构建」权限,避免认证失败
  • 并发控制:如果不想一次性触发所有8个构建,可以在循环中加入sleep(Bash)或Start-Sleep(PowerShell)控制间隔,避免服务器压力过大
  • 分支有效性:确认所有分支存在且构建定义允许该分支触发构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:52:35