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

如何查找指定Workflow下指定Job的最后成功提交记录?

解决指定Workflow下指定Job的最后成功记录查询问题

可以实现精准查询指定Job的最后成功记录,而且不用手动遍历全部历史——GitHub API本身就支持针对性的过滤和排序,效率很高。

核心方案:用GitHub API/CLI直接查询

GitHub的Actions Jobs API允许你按Workflow名称、Job名称、运行状态筛选记录,还能按创建时间倒序排列,直接取第一条结果就是你要的最后成功记录。

在GitHub Workflow里可以用官方的gh CLI工具来调用API,步骤示例如下:

- name: 获取指定Job的最后成功提交SHA
  run: |
    LAST_SUCCESS_SHA=$(gh api repos/${{ github.repository }}/actions/jobs \
      -f workflow_name="你的Workflow名称" \
      -f name="你的目标Job名称" \
      -f status=success \
      --sort=-created_at \
      --jq '.jobs[0].head_sha')
    echo "LAST_SUCCESS_SHA=$LAST_SUCCESS_SHA" >> $GITHUB_ENV
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

这个命令会直接返回符合条件的最新成功Job对应的提交SHA,API会自动帮你完成过滤和排序,不用处理大量历史数据。

关于你用的last-successful-build-action

这个action的逻辑是基于Workflow整体的最后成功运行记录来获取提交,它不会区分Workflow内部的单个Job。如果你的matrix Job中有部分失败但Workflow整体标记为成功(比如允许部分失败),或者你需要的是某个特定Job的成功记录,这个action就满足不了需求,必须用上面的API方案。

额外优化:封装成自定义Action

如果需要重复使用这个逻辑,可以把上述API调用逻辑封装成一个简单的自定义GitHub Action,这样在多个Workflow里都能直接引用,不用重复写命令。

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:32:45