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

如何从GitHub手动触发Jenkins/CloudBees CI检查?是否可结合Jenkinsfile与GitHub Actions?

实现GitHub PR手动触发Jenkins CI检查的两种方案

方案一:纯Jenkins/CloudBees配置(无需GitHub Actions)

完全可以不依赖GitHub Actions实现需求,步骤如下:

  1. 开启Jenkins远程构建权限

    • 打开你的Multibranch Pipeline任务配置,找到「触发远程构建(例如,使用脚本)」选项并勾选,设置一个安全令牌(比如MY_PR_BUILD_TOKEN),保存配置。
    • 确保该任务的权限设置允许指定用户/组触发远程构建。
  2. 配置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触发。
  3. 给用户提供便捷触发方式

    • 在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检查。
  4. 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,步骤如下:

  1. 创建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 }}"
      
  2. 存储敏感信息到GitHub Secrets

    • 进入仓库「Settings → Secrets and variables → Actions」,添加:
      • JENKINS_URL:你的Jenkins实例地址
      • JENKINS_BUILD_TOKEN:Jenkins远程构建令牌
      • JENKINS_USER:有构建权限的Jenkins用户名
      • JENKINS_API_TOKEN:该用户的Jenkins API令牌
  3. 用户触发方式

    • 用户进入仓库「Actions」页面,找到「手动触发Jenkins CI」工作流,点击「Run workflow」,输入PR分支名即可触发。
  4. Jenkinsfile无需大幅修改

    • 保持原有CI逻辑,只需确保能接收branch参数并拉取对应分支代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:20:31