Как получить идентификатор сборки задания GitHub CI (check_run_id)?

Я использую задачи файла build.cake со сценарием PowerShell на компьютере с Windows для GitHub CI. Я пытаюсь получить check_run_id через действия GitHub в файле рабочих процессов .yml. Это возможно?

т.е. https://github.com/Siddharth/my-project/pull/15/checks?check_run_id=2508655272

Мне нужно значение id (2508655272) в файле workflows.yml. Я прикрепил свой файл рабочего процесса.

Пытался получить значение check_run_id из самого параметра GitHub, проверил документацию GitHub. Не найдено ни одной возможности напрямую получить check_run_id.

Есть ли способ получить check_run_id?

Не могли бы вы предложить решение, как добиться этого в моем файле рабочего процесса .yml или любой другой альтернативный способ получить его?

2 ответа

Возможно, вам уже слишком поздно обновлять этот запрос.

Я нашел приведенный ниже подход, чтобы получить точное значение. Это было непросто с какой-либо прямой переменной окружения или с действием. В основном используйте действия GitHub API с run_id.

Ниже приведен фрагмент шага GitHub-action.

      - 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_RUN_ID- ссылка здесь

Или переменная контекста github github.run_id- ссылка здесь

Другие вопросы по тегам