name: Test

on: [push, pull_request]

permissions:
  contents: read

jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        ruby:
          - '2.4'
          - '2.5'
          - '2.6'
          - '2.7'
          - '3.0'
          - '3.1'
          - '3.2'
          - '3.3'
          - '3.4'
          - ruby-head
          - jruby-head
          - truffleruby-head
        include:
          - os: macos-latest
            ruby: '3.1'
    runs-on: ${{matrix.os}}
    env:
      CI: spec

    steps:
    - uses: actions/checkout@v4

    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{matrix.ruby}}
        bundler-cache: true
      continue-on-error: ${{ startsWith(matrix.ruby, '2.4') || startsWith(matrix.ruby, '2.5') }}

    - run: bundle exec rake
      continue-on-error: ${{ startsWith(matrix.ruby, '2.4') || startsWith(matrix.ruby, '2.5') }}
