Как получить идентификатор сборки задания 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
- ссылка здесь