You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GitHub Action的job名称传入动作的输入参数?

问题根因

GitHub Actions 表达式语法不支持嵌套的 ${{ }} 占位符,你使用的 ${{ jobs.${{ env.GITHUB_JOB }}.name }} 写法不符合语法规则,会直接导致工作流YAML解析失败,因此job无法启动,也不会生成对应的运行日志。

正确实现方案

方案1:动态访问jobs上下文(推荐)

利用表达式内置的方括号对象属性访问语法,直接通过当前job ID获取对应的name值,不需要额外配置:

jobs:
  my-name:
    name: "My Name"
    # 其余job配置
    steps:
      - name: Slack Notification
        uses: my-action
        with:
          slack-msg: ${{ jobs[github.job].name }}

说明:

  • github.job 是GitHub官方默认提供的上下文变量,值为当前job的ID,和环境变量GITHUB_JOB完全等价,不需要额外嵌套占位符即可在表达式内直接使用
  • 方括号[]支持传入动态变量作为key访问对象属性,可正确读取到对应job的name字段

方案2:job级环境变量声明(兼容性更好)

如果需要跨多个差异较大的工作流复用该Action,也可以在每个job头部显式声明当前job的名称变量,后续step直接调用即可:

jobs:
  my-name:
    name: "My Name"
    env:
      CURRENT_JOB_NAME: "My Name"
    # 其余job配置
    steps:
      - name: Slack Notification
        uses: my-action
        with:
          slack-msg: ${{ env.CURRENT_JOB_NAME }}

这种写法无需依赖jobs上下文的动态访问规则,修改成本低,不容易出现上下文访问权限问题。

内容的提问来源于stack exchange,提问作者Daniel Kaplan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:18:02