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

如何通过API/Actions插件从Jenkins Pipeline触发GitHub Actions并传递构建参数

操作流程

1. GitHub侧前置配置

  • 首先生成有权限触发工作流的Personal Access Token(PAT):进入GitHub账号设置-开发者设置,生成新PAT,勾选repo和workflow权限,保存生成的token值,后续Jenkins配置会用到。
  • 配置目标GitHub Actions workflow文件:在需要触发的仓库的.github/workflows/目录下修改对应yml文件,开启手动触发入口并定义接收参数,示例配置如下:
name: 被Jenkins触发的工作流
on:
  workflow_dispatch: # 必须开启该触发方式,才能通过API外部调用
    inputs:
      env: # 示例参数1:部署环境,对应Jenkins侧下拉选项
        description: '部署环境'
        required: true
      version: # 示例参数2:构建版本号
        description: '构建版本'
        required: true
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 打印接收的参数
        run: |
          echo "部署环境为: ${{ github.event.inputs.env }}"
          echo "构建版本为: ${{ github.event.inputs.version }}"

注意:如果你的工作流需要指定分支触发,后续调用接口时要传入对应分支名。

2. Jenkins侧基础配置

先将之前生成的GitHub PAT存入Jenkins凭证库,类型选择Secret text,自定义凭证ID(比如github_workflow_trigger_pat),后续配置直接引用即可。

2.1 普通Jenkins Job配置方案

  • 第一步:给Job添加构建参数,需要下拉选项就选择Choice Parameter类型,比如添加名称为ENV的下拉参数,选项填写dev、test、prod;再按需求添加其他参数比如字符串类型的BUILD_VERSION。
  • 第二步:添加构建步骤,选择Execute shell,填入触发GitHub Actions的curl命令:
curl -L \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer ${GITHUB_PAT}" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/<你的GitHub用户名>/<目标仓库名>/actions/workflows/<目标workflow的文件名.yml>/dispatches \
  -d '{"ref":"<触发的分支名,比如main>","inputs":{"env":"'"${ENV}"'","version":"'"${BUILD_VERSION}"'"}}'

替换命令中的占位符为实际值,GITHUB_PAT变量可以在Job的构建环境设置中绑定之前存储的凭证。

2.2 Jenkins Pipeline配置方案

直接编写Pipeline脚本即可,示例如下:

pipeline {
  agent any
  parameters {
    // 定义下拉选项参数,对应传给GitHub Action的env参数
    choice(name: 'ENV', choices: ['dev', 'test', 'prod'], description: '选择部署环境')
    string(name: 'BUILD_VERSION', defaultValue: '', description: '填写构建版本号')
  }
  environment {
    // 引用之前存储的GitHub PAT凭证
    GITHUB_PAT = credentials('github_workflow_trigger_pat')
  }
  stages {
    stage('触发GitHub Actions') {
      steps {
        sh '''
          curl -L \
            -X POST \
            -H "Accept: application/vnd.github+json" \
            -H "Authorization: Bearer ${GITHUB_PAT}" \
            -H "X-GitHub-Api-Version: 2022-11-28" \
            https://api.github.com/repos/<你的GitHub用户名>/<目标仓库名>/actions/workflows/<目标workflow的文件名.yml>/dispatches \
            -d '{"ref":"main","inputs":{"env":"'"${ENV}"'","version":"'"${BUILD_VERSION}"'"}}'
        '''
      }
    }
  }
}

替换脚本中的占位符为实际信息即可。

3. 效果验证

配置完成后在Jenkins启动构建,选择下拉参数值提交后,进入对应GitHub仓库的Actions页面,即可看到对应工作流被触发,且参数已正常传入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:06:04