特定のテストが落ちたとき、診断情報ファイルをdumpする。後のstepで、そのファイルが存在する場合はoutputにフラグを記録して、フラグが立っているときは最後にupload artifactする。
以下のようなYAMLを書いたらできるかと思ったけどできなかった。最後のupload artifactがスキップされてしまう。
name: test on: push: jobs: test: name: annotate runs-on: ubuntu-latest steps: # 実際のテストの代わりに、ファイルを出力して non-zero status を返している - id: do_test run: | echo hello > hello.txt false - id: foo run: | if [ -e 'hello.txt' ]; then echo "::set-output name=exists::true" fi if: failure() - name: check steps.foo.outputs.exists run: echo ${{ steps.foo.outputs.exists }} if: always() - uses: actions/upload-artifact@v2 with: name: hello path: hello.txt if: steps.foo.outputs.exists
いい解決策を思いつかなかったのでフォーラムに投稿した。誰か知見あったら教えてください。