如何将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
相关产品推荐
相关产品推荐

