github.event 的简单回显在 Github Actions 中失败

pka*_*mol 3 continuous-integration github github-actions

我只想打印github.eventGitHub Actions 步骤中的上下文,因此我正在执行以下操作

      - name: check context
        shell: bash
        run: echo ${{ toJSON(github.event) }}
Run Code Online (Sandbox Code Playgroud)

但是,这会失败,如下所示:

/home/runner/work/_temp/hd73999-5309-44cf-9218-9e2e3805d525.sh: line 2: after:: command not found
Error: Process completed with exit code 127.
Run Code Online (Sandbox Code Playgroud)

(尽管github.event 确实在错误发生之前打印了。

这是为什么?

我正在使用该toJSON函数,因为如果我不这样做,所有打印的内容都是:

Run echo Object
Object
Run Code Online (Sandbox Code Playgroud)

Akn*_*sis 7

更新于 10/23

避免转义问题的更好方法是将上下文转储到环境变量中,然后在 bash 中回显该变量。

name: Context testing
on: push

jobs:
  dump_contexts_to_log:
    runs-on: ubuntu-latest
    steps:
      - name: Dump GitHub context
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}
        run: echo "$GITHUB_CONTEXT"

Run Code Online (Sandbox Code Playgroud)

您需要在表达式周围添加引号,这样它就不会将其计算为 JS。

来自: https: //docs.github.com/en/actions/learn-github-actions/contexts#example-printing-context-information-to-the-log

name: Context testing
on: push

jobs:
  dump_contexts_to_log:
    runs-on: ubuntu-latest
    steps:
      - name: Dump GitHub context
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}
        run: echo "$GITHUB_CONTEXT"

Run Code Online (Sandbox Code Playgroud)