name: Tests on: push: branches: - '**' tags-ignore: - 'v*' pull_request: jobs: test: name: Ruby ${{ matrix.ruby }}, ActiveRecord ${{ matrix.activerecord }}, ${{ matrix.database }} continue-on-error: ${{ matrix.ruby == 'head' }} strategy: fail-fast: false matrix: include: - ruby: "head" activerecord: "head" database: sqlite - ruby: "3.2" activerecord: "7.0" database: postgresql - ruby: "3.2" activerecord: "7.0" database: mysql - ruby: "3.2" activerecord: "7.0" database: sqlite - ruby: "3.1" activerecord: "6.1" database: sqlite - ruby: "3.0" activerecord: "6.0" database: sqlite - ruby: "2.7" activerecord: "5.2" database: sqlite runs-on: ubuntu-latest services: postgres: image: postgres:15 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 mysql: image: mysql:8.0 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: evil_seed_test ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 env: CI: true ACTIVERECORD_VERSION: "${{ matrix.activerecord }}" DB: "${{ matrix.database }}" POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres steps: - uses: actions/checkout@v3 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Run tests run: bundle exec rake