如何从GitHub手动触发Jenkins/CloudBees CI检查?是否可结合Jenkinsfile与GitHub Actions?
实现GitHub PR手动触发Jenkins CI检查的两种方案
方案一:纯Jenkins/CloudBees配置(无需GitHub Actions)
完全可以不依赖GitHub Actions实现需求,步骤如下:
开启Jenkins远程构建权限
- 打开你的Multibranch Pipeline任务配置,找到「触发远程构建(例如,使用脚本)」选项并勾选,设置一个安全令牌(比如
MY_PR_BUILD_TOKEN),保存配置。 - 确保该任务的权限设置允许指定用户/组触发远程构建。
- 打开你的Multibranch Pipeline任务配置,找到「触发远程构建(例如,使用脚本)」选项并勾选,设置一个安全令牌(比如
配置GitHub Webhook(可选,优化触发体验)
- 进入GitHub仓库的「Settings → Webhooks → Add webhook」,Payload URL填:
http://你的Jenkins地址/job/你的Multibranch任务名/buildWithParameters?token=MY_PR_BUILD_TOKEN&branch=PR_SOURCE_BRANCH - 内容类型选
application/json,触发事件选「Let me select individual events」,勾选「Pull requests」,这样PR更新时也能触发,但核心是用户可以手动拼接URL触发。
- 进入GitHub仓库的「Settings → Webhooks → Add webhook」,Payload URL填:
给用户提供便捷触发方式
- 在PR模板或README里添加触发按钮,让用户替换分支名即可点击触发:
[🔧 手动触发CI检查](http://你的Jenkins地址/job/你的Multibranch任务名/buildWithParameters?token=MY_PR_BUILD_TOKEN&branch=你的PR分支名) - 或者用GitHub的PR评论命令(需安装Jenkins的
GitHub Pull Request Builder插件),用户评论/run-ci即可触发对应PR的CI检查。
- 在PR模板或README里添加触发按钮,让用户替换分支名即可点击触发:
Jenkinsfile适配分支参数
- 确保流水线能识别传入的分支参数,示例:
pipeline { agent any parameters { string(name: 'branch', description: '要构建的分支名') } stages { stage('拉取代码') { steps { git branch: params.branch, url: '你的GitHub仓库地址' } } stage('CI检查') { steps { sh 'mvn clean test' // 替换成你的CI命令 } } } post { success { githubNotify(status: 'SUCCESS', context: '手动CI检查') } failure { githubNotify(status: 'FAILURE', context: '手动CI检查') } } }
- 确保流水线能识别传入的分支参数,示例:
方案二:结合GitHub Actions与Jenkinsfile
如果想借助GitHub的UI实现更友好的手动触发,可结合Actions,步骤如下:
创建GitHub Actions工作流
- 在仓库
.github/workflows/manual-jenkins-ci.yml中添加:name: 手动触发Jenkins CI on: workflow_dispatch: inputs: pr_branch: description: 'PR源分支名称' required: true type: string jobs: trigger-jenkins: runs-on: ubuntu-latest steps: - name: 调用Jenkins构建接口 uses: fjogeleit/http-request-action@v1 with: url: "${{ secrets.JENKINS_URL }}/job/你的Multibranch任务名/buildWithParameters" method: "POST" data: '{"token": "${{ secrets.JENKINS_BUILD_TOKEN }}", "branch": "${{ github.event.inputs.pr_branch }}"}' username: "${{ secrets.JENKINS_USER }}" password: "${{ secrets.JENKINS_API_TOKEN }}"
- 在仓库
存储敏感信息到GitHub Secrets
- 进入仓库「Settings → Secrets and variables → Actions」,添加:
JENKINS_URL:你的Jenkins实例地址JENKINS_BUILD_TOKEN:Jenkins远程构建令牌JENKINS_USER:有构建权限的Jenkins用户名JENKINS_API_TOKEN:该用户的Jenkins API令牌
- 进入仓库「Settings → Secrets and variables → Actions」,添加:
用户触发方式
- 用户进入仓库「Actions」页面,找到「手动触发Jenkins CI」工作流,点击「Run workflow」,输入PR分支名即可触发。
Jenkinsfile无需大幅修改
- 保持原有CI逻辑,只需确保能接收
branch参数并拉取对应分支代码即可。
- 保持原有CI逻辑,只需确保能接收
内容的提问来源于stack exchange,提问作者dnrandom
相关产品推荐
相关产品推荐

