name: CI on: [push, pull_request] jobs: # This matrix job runs the test suite against multiple Ruby versions test_matrix: strategy: fail-fast: false matrix: ruby: [3.2, 3.3] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - run: bundle exec rake # Branch protection rules cannot directly depend on status checks from matrix jobs. # So instead we define `test` as a dummy job which only runs after the preceding `test_matrix` checks have passed. # Solution inspired by: https://github.community/t/status-check-for-a-matrix-jobs/127354/3 test: needs: test_matrix runs-on: ubuntu-latest steps: - run: echo "All matrix tests have passed 🚀" publish: needs: test if: ${{ github.ref == 'refs/heads/main' }} permissions: contents: write uses: publishing-platform/publishing-platform-infrastructure/.github/workflows/publish-rubygem.yml@main secrets: GEM_HOST_API_KEY: ${{ secrets.PUBLISHING_PLATFORM_RUBYGEMS_API_KEY }}