如何在GitHub Actions工作流中获取运行时Job ID?
在GitHub Actions工作流中获取运行时Job ID的方法
GitHub的github上下文并没有直接提供Job ID的内置变量,想要获取它,需要通过GitHub API结合已知的Run ID和Job Name来查询。
实现步骤
- 确保工作流拥有调用GitHub API的权限(默认的
GITHUB_TOKEN已具备actions:read权限,满足需求) - 调用API获取当前Run的所有Job列表,通过Job Name匹配出对应的Job ID
示例工作流代码
jobs: demo-job: runs-on: ubuntu-latest steps: - name: 查询并输出Job ID env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} REPO: ${{ github.repository }} RUN_ID: ${{ github.run_id }} JOB_NAME: ${{ github.job }} run: | # 调用API获取当前Run的Job数据 job_data=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ "https://api.github.com/repos/$REPO/actions/runs/$RUN_ID/jobs") # 用jq工具筛选匹配当前Job Name的ID job_id=$(echo "$job_data" | jq -r ".jobs[] | select(.name == \"$JOB_NAME\") | .id") echo "当前Job的ID是: $job_id"
补充说明
- 运行环境需要安装
jq工具(ubuntu-latest镜像默认已预装,其他环境可通过apt install jq或对应包管理器安装) - 若使用GitHub CLI(
gh),可以简化API调用命令:gh api repos/$REPO/actions/runs/$RUN_ID/jobs | jq -r ".jobs[] | select(.name == \"$JOB_NAME\") | .id"
内容的提问来源于stack exchange,提问作者ChzDz
相关产品推荐
相关产品推荐

