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

Azure Pipelines YAML模板添加按钮实现方法咨询

在YAML流水线模板中添加手动触发按钮的实现方法

YAML流水线中的“按钮”通常对应手动触发的审批或确认节点,主流CI/CD平台都有对应的实现方式,以下是最常用的场景:

1. 阶段级手动审批(Azure DevOps)

如果需要在整个阶段前加审批按钮,可通过定义带审批的环境实现,适合生产环境部署这类场景:

stages:
- stage: ProductionDeploy
  jobs:
  - deployment: DeployToProd
    environment:
      name: Production
      approval:
        approvers:
        - user: john.doe
        - group: prod-approval-team
        timeoutInMinutes: 480 # 审批超时时间(分钟)
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo "开始部署到生产环境"

当流水线运行到该阶段时,会自动生成审批按钮,只有指定人员/组批准后,流水线才会继续执行。

2. 步骤级手动确认(Azure DevOps)

如果需要在某个步骤后加确认按钮,使用内置的ManualValidation任务即可:

steps:
- script: echo "完成代码构建与测试"
- task: ManualValidation@0
  inputs:
    notifyUsers: |
      jane.smith@company.com
      dev-team@company.com
    instructions: "请确认是否将构建产物部署到预发布环境?"
    timeoutInMinutes: 1440 # 最长等待1天
- script: echo "部署到预发布环境"

该任务会在流水线中生成一个确认按钮,点击“批准”后才会执行后续步骤,还可配置通知对象和超时时间。

模板化复用

如果需要在多个流水线中复用这个按钮逻辑,可以抽成独立模板文件(比如manual-approval-template.yml):

parameters:
  - name: notifyUsers
    type: string
    default: ''
  - name: instructions
    type: string
    default: "请确认是否继续执行?"

steps:
- task: ManualValidation@0
  inputs:
    notifyUsers: ${{ parameters.notifyUsers }}
    instructions: ${{ parameters.instructions }}
    timeoutInMinutes: 1440

然后在主流水线中引用模板:

steps:
- script: echo "完成前置检查"
- template: manual-approval-template.yml
  parameters:
    notifyUsers: "lead@company.com"
    instructions: "确认是否启动生产部署流程?"
- script: echo "开始生产部署"

GitLab CI 场景

如果使用GitLab CI,只需给作业加上when: manual标记即可生成手动触发按钮:

deploy_production:
  script:
    - echo "部署到生产环境"
  when: manual
  allow_failure: false
  environment: production

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:20:24