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

如何在Azure DevOps流水线中基于目录数量创建动态Job?

Azure DevOps动态Job实现方案

完全可以实现,你可以通过Azure DevOps的动态矩阵作业功能,根据部署目录的实际数量自动生成对应数量的部署Job,不需要提前硬编码Job数量。

实现步骤

1. 新增矩阵生成前置作业

首先添加一个用于扫描目录、生成动态矩阵参数的前置Job,输出所有待部署的应用目录列表供后续作业使用,示例配置如下:

jobs:
# 前置作业:扫描目录生成矩阵
- job: generate_deploy_matrix
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - bash: |
      # 扫描deployments目录下所有一级子目录,生成数组格式的应用列表
      APP_LIST=$(find deployments -maxdepth 1 -type d | grep -v '^deployments$' | xargs basename | jq -R -s -c 'split("\n")[:-1]')
      # 输出变量供后续作业调用
      echo "##vso[task.setvariable variable=appList;isOutput=true]$APP_LIST"
    name: get_app_dirs

2. 配置动态部署作业

添加依赖前置作业的部署Job,通过引用前置作业输出的矩阵参数,自动生成对应数量的部署Job,每个Job对应一个应用目录:

# 动态部署作业:每个应用对应一个独立Job
- job: deploy_single_app
  dependsOn: generate_deploy_matrix
  pool:
    vmImage: 'ubuntu-latest'
  strategy:
    # 引用前置作业输出的应用列表生成矩阵
    matrix: $[ dependencies.generate_deploy_matrix.outputs['get_app_dirs.appList'] ]
    # 可修改此处控制最大并发部署数,1为串行执行
    maxParallel: 10
  steps:
  - bash: |
      # 提前安装cf cli(如果代理镜像中没有预装)
      # wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo apt-key add -
      # echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
      # sudo apt-get update && sudo apt-get install cf8-cli
      
      # 登录Cloud Foundry
      cf login -a $CF_API -u $CF_USER -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE
      # 进入对应应用目录执行部署
      cd deployments/$(System.JobName)
      cf push
    env:
      # 以下变量提前在流水线变量中配置,不要硬编码敏感信息
      CF_API: $(cf_api)
      CF_USER: $(cf_user)
      CF_PASSWORD: $(cf_password)
      CF_ORG: $(cf_org)
      CF_SPACE: $(cf_space)

注意事项

  • 如果你使用的构建代理已经预装了Cloud Foundry CLI,可以跳过配置中的cf cli安装步骤
  • 可以根据实际需求调整maxParallel参数控制部署并发数,设置为1即可实现应用串行部署
  • 所有认证相关信息建议存在Azure DevOps流水线的加密变量中,避免泄露

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:36:00