結論
どういうことかというと、以下のような場合です。
- name: First step id: my_variables run: | echo "::set-output name=hoge::FOO #12345" - name: Second step run: | echo "${{ toJSON(steps.my_variables) }}"
このステップを含んだ Action を実行すると次のようなエラーになります。
... line 6: syntax error near unexpected token `}'
どうすればいいか
公式ドキュメントにもあるように、一度環境変数に格納するとよいです。先ほどの YAML を書き直してみます。
- name: First step id: my_variables run: | echo "::set-output name=hoge::FOO #12345" - name: Second step env: STEPS_CONTEXT: ${{ toJson(steps.my_variables) }} run: | echo "${STEPS_CONTEXT}"
このように書き直して実行すると正しく実行されます。
背景
とある変数に uname -a
の結果を代入したところ、この現象に遭遇しました。そのときの uname -a
の出力は以下の通りで、今回の現象の条件を見事に満たしていました。
Linux docker-desktop 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux