GitHub Actions上でコマンドの実行ログを出しつつ内容をJob Summaryにも表示する

#github
#shellscript

GitHub Actions の step 実行結果にコマンドの実行ログを流しつつ、Job Summary にも同じ内容を表示したい場合のやり方。以下のように tee を挟んで $GITHUB_STEP_SUMMARY(ファイル)にリダイレクトすればいい。

name: Run command demo 'on': workflow_dispatch: jobs: demo: runs-on: ubuntu-latest steps: - name: Run shell: bash run: | echo "shell: $0" echo "# Result" >> $GITHUB_STEP_SUMMARY echo "\`\`\`" >> $GITHUB_STEP_SUMMARY ps -ax | tee >(cat) >> $GITHUB_STEP_SUMMARY echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

結果はこのように。

コマンドを実行する step が Bourne Shell で動いていると tee >(cat) で怒られるので、その場合は shell: bashで bash を使うよう指定する。

sh: syntax error near unexpected token `('

最初このエラー原因に気づかず some-command | tee >/dev/tty >> GITHUB_STEP_SUMMARY として逃げようとしたが、今度は GitHub Actions で tty が使えずハマったのだった。

Not a tty · Issue #241 · actions/runner · GitHub

Tweet