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

如何基于Jenkins构建成功状态触发Pull Request的GitHub Actions工作流?

解决方案

一、配置Jenkins仅通过PR Webhook触发

  1. 在GitHub仓库的「Settings → Webhooks」页面,添加Jenkins的Webhook地址(格式通常为 http://你的Jenkins域名/github-webhook/)。
  2. 触发事件选择「Let me select individual events」,仅勾选「Pull requests」,确保只有PR的创建、更新、重开等事件会推送Webhook到Jenkins。
  3. 在Jenkins对应任务的配置页面,勾选「GitHub hook trigger for GITScm polling」,让Jenkins能够接收并响应GitHub的PR Webhook事件。

二、配置Jenkins向GitHub提交状态检查

  1. 确保Jenkins已安装「GitHub Status」插件。
  2. 在Jenkins任务的「构建后操作」中添加「Set GitHub commit status (universal)」:
    • 配置GitHub账号凭据(需拥有仓库的状态检查权限);
    • 设置「Context」为唯一标识(比如 jenkins/pr-build,后续Actions会通过这个上下文识别Jenkins的检查结果);
    • 构建成功时,将「Status」设为「Success」;构建失败则设为「Failure」。
  3. 保存配置后,后续PR触发的Jenkins构建完成后,会自动向GitHub的PR提交对应的状态检查结果。

三、配置GitHub Actions仅在Jenkins状态检查通过后触发

在仓库的 .github/workflows/ 目录下创建工作流文件(比如 post-jenkins-build.yml),内容如下:

name: Run After Jenkins PR Build
on:
  # 监听PR的创建、更新、重开事件
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  execute-workflow:
    runs-on: ubuntu-latest
    # 仅当Jenkins的状态检查(上下文为jenkins/pr-build)成功时执行
    if: >-
      ${{
        contains(
          github.event.pull_request.status_checks.*.context,
          'jenkins/pr-build'
        ) &&
        (github.event.pull_request.status_checks | select(.context == 'jenkins/pr-build') | first).conclusion == 'success'
      }}
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
      
      # 在这里添加你的具体工作流步骤
      - name: Example Step
        run: echo "Jenkins build passed, executing GitHub Actions..."

或者,也可以通过监听Jenkins的检查套件完成事件来触发,这种方式更精准:

name: Run After Jenkins PR Build
on:
  check_suite:
    types: [completed]

jobs:
  execute-workflow:
    runs-on: ubuntu-latest
    if: >-
      ${{
        github.event.check_suite.app.name == 'Jenkins' &&
        github.event.check_suite.conclusion == 'success' &&
        github.event.check_suite.pull_requests != []
      }}
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
      
      # 你的工作流步骤
      - name: Example Step
        run: echo "Jenkins PR build passed, starting Actions..."

验证流程

  1. 创建或更新PR,确认Jenkins被Webhook触发并开始构建;
  2. Jenkins构建成功后,查看PR的「Checks」标签页,确认Jenkins的状态检查显示为绿色;
  3. 检查GitHub Actions是否自动触发并执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:23:15