name: Test

on: [push, pull_request]

jobs:

test:
  strategy:
    fail-fast: false
    matrix:
      ruby:
        - 3.2
        - 3.3
        - 3.4
      gemfile:
        - gemfiles/rails_7_2.gemfile
        - gemfiles/rails_8_0.gemfile
        - gemfiles/rails_8_1.gemfile
  env:
    PERCONA_DB_USER: root
    PERCONA_DB_PASSWORD: root
    BUNDLE_GEMFILE: ${{ matrix.gemfile }}
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        bundler-cache: true
    - name: "Add Percona GPG key"
      run: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9334A25F8507EFA5
    - name: "Add Percona APT repository"
      run: echo "deb http://repo.percona.com/apt `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
    - run: sudo apt-get update -qq
    - run: sudo apt-get install percona-toolkit
    - name: Start MySQL server
      run: sudo systemctl start mysql.service
    - run: bin/setup
    - run: bundle exec rake
lint:
  strategy:
    fail-fast: false
  env:
    PERCONA_DB_USER: root
    PERCONA_DB_PASSWORD: root
    BUNDLE_GEMFILE: gemfiles/rails_8_1.gemfile
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.4
        bundler-cache: true
    - run: bundle exec rubocop --parallel