如何通过gh workflow run命令行工具获取工作流ID?
解决gh workflow run获取工作流运行ID的问题
你的命令无法正常运行的核心原因是:gh workflow run 默认不会输出JSON格式的运行结果,直接用jq解析自然会失败。下面是两种可行的解决方法:
方法一:让gh workflow run直接输出JSON并提取ID
修改命令,添加--json id参数指定只输出ID的JSON结构,这样jq就能正确解析:
RUN_ID=$(gh workflow run workflow.yml --repo $REPO --ref $REF \ -f param=$par --json id | jq -r '.id')
方法二:通过gh run list查找最新的运行ID
如果方法一不适用,可以在触发工作流后,用gh run list筛选出对应工作流的最新运行记录并提取ID:
# 先触发工作流 gh workflow run workflow.yml --repo $REPO --ref $REF -f param=$par # 查找该工作流的最新运行ID RUN_ID=$(gh run list --repo $REPO --workflow workflow.yml --limit 1 --json id | jq -r '.[0].id')
额外注意事项
- 确保你的GitHub CLI(gh)版本是较新的,旧版本可能不支持
--json参数,可通过gh --version检查,必要时升级。 - 确认环境变量
$REPO、$REF、$par都已正确设置,避免参数为空导致命令失败。
内容的提问来源于stack exchange,提问作者hb.Sara
相关产品推荐
相关产品推荐

