如何将作业名称传递到 github 操作的输入中?

Dan*_*lan 5 github github-actions

jobs:
  my-name:
    name: "My Name"
    ...
    steps:
      - name: Slack Notification
        uses: my-action
        with:
          slack-msg: ${{ jobs.${{ env.GITHUB_JOB }}.name }}
Run Code Online (Sandbox Code Playgroud)

我希望 slack-msg 的计算结果为“我的名字”。我在多个作业中使用 my-action,并且我总是想传递作业名称,但我不知道该怎么做。当我尝试上述操作时,该作业实际上没有运行,我不知道如何解决原因:github 工作流程日志my-name实际上不存在。

如何将作业名称传递到输入参数中?

sor*_*rin 0

由于不支持嵌套表达式,您可以使用如下技巧来获取矩阵作业名称。

jobs:
  test:
    env:
      # to expose matrix job name to steps, which is not possible with expansions
      JOB_NAME: ${{ matrix.name || format('{0} ({1})', matrix.tox-target, matrix.os) }}
    name: ${{ matrix.name || format('{0} ({1})', matrix.tox-target, matrix.os) }}
Run Code Online (Sandbox Code Playgroud)

请注意,您无法真正访问矩阵名称,但您可以确保将相同的名称保存到环境变量中并使用它。