3232 runs-on : ubuntu-22.04
3333 continue-on-error : ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
3434 env : # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
35- BUNDLE_GEMFILE : ${{ github.workspace }}/gemfiles/ruby_3_0 .gemfile
35+ BUNDLE_GEMFILE : ${{ github.workspace }}/Appraisal.root .gemfile
3636 strategy :
3737 matrix :
3838 include :
@@ -59,13 +59,22 @@ jobs:
5959 ruby-version : ${{ matrix.ruby }}
6060 rubygems : ${{ matrix.rubygems }}
6161 bundler : ${{ matrix.bundler }}
62- bundler-cache : false
62+ bundler-cache : true
6363
64- - name : Bundle install
64+ - name : " [Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
65+ id : bundleAppraisalAttempt1
6566 if : ${{ !env.ACT }}
66- run : bundle install --jobs 4
67+ run : bundle exec appraisal ${{ matrix.appraisal }} install
68+ # Continue to the next step on failure
69+ continue-on-error : true
70+
71+ # Effectively an automatic retry of the previous step.
72+ - name : " [Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
73+ id : bundleAppraisalAttempt2
74+ # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
75+ if : ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
76+ run : bundle exec appraisal ${{ matrix.appraisal }} install
6777
6878 - name : Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
6979 if : ${{ !env.ACT }}
70- run : bundle exec ${{ matrix.exec_cmd }}
71- continue-on-error : ${{ matrix.experimental }}
80+ run : bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
0 commit comments