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

GitHub Action跨仓库构建失败求助:Ghidra工作流配置问题

解决Ghidra CI构建触发的两个问题:输入错误与仓库更新自动触发

一、修复"Unexpected inputs provided"错误

这个报错的核心原因是你调用workflow-dispatch时传入的参数,和目标工作流「Ghidra Build」定义的输入参数不匹配,另外你的脚本还存在一处语法小问题,咱们一步步来修:

1. 对齐目标工作流的输入定义

先打开你的ghidra-ci仓库里的「Ghidra Build」工作流文件(比如.github/workflows/ghidra-build.yml),检查它的workflow_dispatch部分是否明确定义了rev和prevRev这两个输入项。如果没有,要么在目标工作流里补上对应的输入定义,要么调整触发时传递的参数。

正确的目标工作流输入定义示例:

on:
  workflow_dispatch:
    inputs:
      rev:
        description: '要构建的提交哈希值'
        required: true
      prevRev:
        description: '上一个版本的提交哈希值'
        required: false

2. 修正脚本语法与参数格式

你的check步骤里提取LAST_REL_COMMITID的命令有语法错误:grep -oP "\(\K\w+(?=)"的括号没闭合,应该改成grep -oP "\(\K\w+(?=\))",这个错误会导致lastrev输出为空或无效值,间接引发问题。

另外,触发时的JSON参数格式可以更清晰,避免转义问题,修改Trigger build步骤的inputs部分:

inputs: |
  {
    "rev": "${{ steps.check.outputs.rev }}",
    "prevRev": "${{ steps.check.outputs.lastrev }}"
  }

二、实现Ghidra仓库更新时直接触发构建

不需要依赖定时检测,我们可以利用GitHub Actions的跨仓库触发能力,在你的Ghidra仓库(Lockna/Ghidra)里加一个工作流,当有新提交或发布时直接触发ghidra-ci的构建:

步骤1:在Ghidra仓库添加触发工作流

创建.github/workflows/trigger-ghidra-ci.yml文件,内容如下:

name: 触发Ghidra CI构建
on:
  push:
    branches: [ main, master ] # 替换成你需要监听的分支
  release:
    types: [ published ] # 可选:当发布新版本时触发

jobs:
  trigger-build:
    runs-on: ubuntu-latest
    steps:
      - name: 调用Ghidra CI工作流
        uses: benc-uk/workflow-dispatch@v1.1
        with:
          workflow: "Ghidra Build"
          repo: Lockna/ghidra-ci
          token: ${{ secrets.PAT_TOKEN }} # 这个PAT需要拥有ghidra-ci仓库的工作流触发权限
          inputs: |
            {
              "rev": "${{ github.sha }}",
              "prevRev": "${{ github.event.release.target_commitish || github.event.before }}"
            }

步骤2:配置权限

确保你的PAT_TOKEN具备以下权限:

  • 对ghidra-ci仓库的workflow权限(允许触发工作流)
  • 对Ghidra仓库的repo权限(读取仓库事件)

步骤3:移除定时检测工作流(可选)

如果直接触发的方案生效,你可以删掉之前的「Check for new commits」定时工作流,减少不必要的资源消耗。

额外注意事项

  • 确认两个仓库的工作流文件都放在.github/workflows/目录下,路径正确
  • 测试时可以手动触发Ghidra仓库的触发工作流,验证是否能成功调用ghidra-ci的构建
  • 遇到问题时查看GitHub Actions的日志,能清晰看到参数传递的细节,方便排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:03:28