如何获取 GitHub CI 作业构建 id (check_run_id)?
Posted
技术标签:
【中文标题】如何获取 GitHub CI 作业构建 id (check_run_id)?【英文标题】:How to get the GitHub CI job build id (check_run_id)? 【发布时间】:2021-08-10 15:31:27 【问题描述】:我在 Windows 机器上为 GitHub CI 使用带有 PowerShell 脚本的 build.cake 文件任务。我正在尝试通过工作流 .yml 文件中的 GitHub Actions 获取 check_run_id。这可能吗?
即https://github.com/Siddharth/my-project/pull/15/checks?check_run_id=2508655272
我需要 workflows.yml 文件中的 id(2508655272) 值。我已附上我的工作流程文件。
我试图从 GitHub 参数本身获取 check_run_id 值,检查了 GitHub 文档。没有找到直接获取check_run_id的选项。
有什么办法可以得到check_run_id?
您能否就如何在我的工作流 .yml 文件中实现这一点或任何其他替代方法提出解决方案?
【问题讨论】:
【参考方案1】:对您来说,更新此查询可能为时已晚。
我找到了以下方法来获得确切的值。使用任何直接的环境变量或操作都不是一件容易的事。基本上使用带有 run_id 的操作 GitHub API。
下面是 GitHub-action 步骤的 sn-p。
- run: |
URI="https://api.github.com"
API_HEADER="Accept: application/vnd.github.v3+json"
AUTH_HEADER="Authorization: token $ secrets.GITHUB_TOKEN "
body=$(curl -sSL -H "$AUTH_HEADER" -H "$API_HEADER" "$URI/repos/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID/jobs")
url=$(echo "$body" | jq .jobs | jq .[-1] | jq .html_url)
id=$(echo "$body" | jq .jobs | jq .[-1] | jq .id)
sha=$(echo "$body" | jq .jobs | jq .[-1] | jq -r .head_sha)
echo ::set-output name=checkid::$id
id: checkRunId
...
...
然后在您想在其他步骤中引用的任何地方使用 $ steps.checkRunId.outputs.checkid 输出变量..
如果这对您有帮助,请为答案投票。
【讨论】:
以上是关于如何获取 GitHub CI 作业构建 id (check_run_id)?的主要内容,如果未能解决你的问题,请参考以下文章
Github Actions - 如何在 CI 构建时将 SCSS 编译为 CSS?