name: CI

on:
  push:
    branches: [ main, 5-x-stable ]
  pull_request:
    branches: [ main, 5-x-stable ]

env:
  BUNDLE_WITHOUT: "development"
  JRUBY_OPTS: "--dev --debug"

jobs:
  test:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        ruby: [ ruby-2.6, ruby-2.7, ruby-3.0, ruby-3.1, ruby-3.2, ruby-3.3 ]
        os: [ ubuntu-latest ]

    steps:
      - uses: actions/checkout@v4

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true

      - name: bundle exec rspec
        run: bundle exec rspec --format progress --force-colour

  test-flaky:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        ruby: [ jruby-9.3 ]
        os: [ ubuntu-latest ]

    steps:
      - uses: actions/checkout@v4

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true

      - name: bundle exec rspec
        continue-on-error: true
        run: bundle exec rspec --format progress --force-colour

  lint:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.6
          bundler-cache: true

      - name: bundle exec rubocop
        run: bundle exec rubocop --format progress --color

      - run: bundle exec rake verify_measurements
