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

如何通过上游流水线重新触发带指定参数的下游流水线运行

按需重新触发下游流水线并传递ACTION参数的解决方案

一、GitLab CI 场景

1. 上游流水线配置手动触发作业

在上游项目的.gitlab-ci.yml中添加一个手动触发的作业,通过GitLab API调用下游流水线并传递ACTION参数:

trigger_downstream:
  stage: trigger
  script:
    - |
      curl --request POST \
        --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
        --form "variables[ACTION]=$ACTION" \
        "https://你的GitLab域名/api/v4/projects/<下游项目ID>/trigger/pipeline"
  when: manual
  variables:
    ACTION: deploy # 默认值,手动触发时可修改为undeploy
  allow_failure: false
  • 配置说明:GITLAB_TOKEN需在项目变量中设置,要拥有触发下游流水线的权限;<下游项目ID>替换为实际的下游项目ID;手动触发该作业时,可直接修改ACTION变量值,选择执行部署或撤销部署。

2. 下游流水线接收参数执行对应逻辑

下游项目的.gitlab-ci.yml通过$ACTION变量控制作业执行:

deploy_job:
  stage: deploy
  script:
    - echo "执行部署操作"
    # 此处添加实际部署逻辑
  only:
    variables:
      - $ACTION == "deploy"

undeploy_job:
  stage: undeploy
  script:
    - echo "执行撤销部署操作"
    # 此处添加实际撤销部署逻辑
  only:
    variables:
      - $ACTION == "undeploy"

二、Jenkins 场景

1. 上游流水线配置参数化手动触发

在上游Jenkinsfile中添加参数化构建选项,通过build步骤触发下游流水线:

pipeline {
  agent any
  parameters {
    choice(name: 'ACTION', choices: ['deploy', 'undeploy'], description: '选择操作类型')
  }
  stages {
    stage('构建产物') {
      steps {
        // 此处添加你的构建逻辑
      }
    }
    stage('触发下游流水线') {
      steps {
        script {
          build job: '下游流水线名称', 
              parameters: [string(name: 'ACTION', value: params.ACTION)],
              wait: false // 不需要等待下游完成可设为false
        }
      }
      when {
        expression { currentBuild.currentResult == 'SUCCESS' }
      }
    }
  }
}
  • 配置说明:上游流水线需开启参数化构建,选择Choice类型参数ACTION;需要多次触发时,直接重新运行上游流水线,选择对应的操作类型即可。

2. 下游流水线接收参数分支执行

下游Jenkinsfile中根据ACTION参数执行对应逻辑:

pipeline {
  agent any
  parameters {
    string(name: 'ACTION', defaultValue: 'deploy', description: '操作类型')
  }
  stages {
    stage('执行操作') {
      steps {
        script {
          if (params.ACTION == 'deploy') {
            echo "执行部署流程"
            // 此处添加部署逻辑
          } else if (params.ACTION == 'undeploy') {
            echo "执行撤销部署流程"
            // 此处添加撤销部署逻辑
          }
        }
      }
    }
  }
}

通用注意事项

  • 确保上游流水线拥有触发下游的权限:GitLab需配置有效API令牌,Jenkins需配置对应权限的凭据
  • 下游流水线必须提前配置参数接收逻辑,确保能识别ACTION变量并执行对应阶段
  • 手动触发时可自由切换deploy/undeploy,实现按需多次执行部署或撤销操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:45:31