2

我在 GitHub CI 的 Windows 机器上使用带有 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 文件或任何其他替代方法中实现这一点提出一个解决方案?

在此处输入图像描述

4

1 回答 1

0

对于此查询的更新,您可能为时已晚。

我找到了以下方法来获得确切的价值。任何直接的环境变量或动作都不是一件容易的事。基本上使用带有 run_id 的操作 GitHub API。

下面是 GitHub 操作步骤的片段。

- 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 }} 输出变量..

如果这对您有帮助,请为答案投票。

于 2022-01-22T20:10:17.187 回答