name: CI on: push: branches: - main pull_request: jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] ruby: ['3.0', 3.1, 3.2, 3.3, head, jruby, truffleruby] gemfile: [all, without_active_support, without_oj] exclude: - os: windows-latest ruby: jruby - os: windows-latest ruby: truffleruby runs-on: ${{ matrix.os }} env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps BUNDLE_GEMFILE: ${{ (matrix.gemfile == 'without_active_support' && 'gemfiles/without_active_support.gemfile') || (matrix.gemfile == 'without_oj' && 'gemfiles/without_oj.gemfile') || null }} steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Run the default task run: | bundle exec rake - name: CodeCov uses: codecov/codecov-action@v5 with: files: ./coverage/coverage.xml token: ${{ secrets.CODECOV_TOKEN }}