name: Test

on: [push, pull_request]

jobs:

test:

  strategy:
    fail-fast: false
    matrix:
      entry:
        - { ruby: '2.6.6', mongo: 'mongo:4.4', mongoid: '5' }

# - { ruby: ‘jruby-9.1.17.0’, mongo: ‘mongo:4.4’, mongoid: ‘5’ }

      - { ruby: 'jruby-9.2.11.1', mongo: 'mongo:4.4', mongoid: '5' }
      - { ruby: '2.6.6', mongo: 'mongo:4.4', mongoid: '6' }
      - { ruby: '2.7.1', mongo: 'mongo:4.4', mongoid: '6' }
      - { ruby: '3.0.5', mongo: 'mongo:4.4', mongoid: '6' }
      - { ruby: '3.1.3', mongo: 'mongo:4.4', mongoid: '6' }
      - { ruby: 'jruby-9.2.11.1', mongo: 'mongo:4.4', mongoid: '6' }
      - { ruby: '2.6.6', mongo: 'mongo:4.4', mongoid: '7', coverage: 'true' }
      - { ruby: '2.7.1', mongo: 'mongo:4.4', mongoid: '7' }
      - { ruby: '3.0.5', mongo: 'mongo:4.4', mongoid: '7' }
      - { ruby: '3.1.3', mongo: 'mongo:4.4', mongoid: '7' }
      - { ruby: 'jruby-9.2.11.1', mongo: 'mongo:4.4', mongoid: '7' }
      - { ruby: '2.6.6', mongo: 'mongo:4.4', mongoid: '8' }
      - { ruby: '2.7.1', mongo: 'mongo:4.4', mongoid: '8' }
      - { ruby: '3.0.5', mongo: 'mongo:4.4', mongoid: '8' }
      - { ruby: '3.1.3', mongo: 'mongo:4.4', mongoid: '8' }
      - { ruby: '3.1.3', mongo: 'mongo:4.4', mongoid: '9' }
    experimental: [false]

name: test (ruby=${{ matrix.entry.ruby }}, mongo=${{ matrix.entry.mongo }}, mongoid=${{ matrix.entry.mongoid }})
runs-on: ubuntu-latest

continue-on-error: ${{ matrix.experimental }}

services:
  mongo:
    image: ${{ matrix.entry.mongo }}
    ports: ["27017:27017"]

env:
  MONGOID_VERSION: ${{ matrix.entry.mongoid }}
  COVERAGE: ${{ matrix.entry.coverage }}

steps:
- uses: actions/checkout@v3

- name: Set up Ruby
  uses: ruby/setup-ruby@v1
  with:
    ruby-version: ${{ matrix.entry.ruby }}
    bundler-cache: true

- name: Run tests
  run: bundle exec rspec

- name: Code Climate
  if: ${{ env.CC_TEST_REPORTER_ID != '' && success() && matrix.entry.coverage == 'true' }}
  uses: paambaati/[email protected]
  env:
    CC_TEST_REPORTER_ID: ${{ vars.CC_TEST_REPORTER_ID }}