いわゆるジョブが失敗しても成功扱いしたい的なやつ
tl;dr;
jobs: test: runs-on: ubuntu-latest container: ${{ matrix.ruby }} strategy: fail-fast: false matrix: ruby: - ruby:2.2 - ruby:2.3 - ruby:2.4 - ruby:2.5 - ruby:2.6 - ruby:2.7 - rubylang/ruby:master-nightly-bionic include: - ruby: rubylang/ruby:master-nightly-bionic allow_failures: "true" steps: - uses: actions/checkout@v2 - name: Cache vendor/bundle uses: actions/cache@v1 id: cache_gem with: path: vendor/bundle key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ github.sha }} restore-keys: | v1-gem-${{ runner.os }}-${{ matrix.ruby }}- continue-on-error: ${{ matrix.allow_failures == 'true' }}
解説
include
で任意のmatrixに変数を突っ込むことができる- 上の例だと
ruby:ubylang/ruby:master-nightly-bionic
の時だけmatrix.allow_failures
が"true"
で設定される *1 - ちゃんと調べていないけど
include
で明示的に変数セットされてない場合はエラーにならない(空文字で評価されてる?)
- 上の例だと
continue-on-error: true
にしてると中で失敗(赤色)しても成功扱い(緑色)にしてくれる- https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error
- ただしTravis CIみたいに黄色にしてくれないので、実際にエラーが起きているかどうかログを見に行かないと分からない
fail-fast: false
はなくてもいいです- 僕はデフォルトの
fail-fast: true
(どれか1つでもジョブが失敗したら他のジョブを全部キャンセルする)が嫌いなので無効にしてます
- 僕はデフォルトの