DatabaseCleaner/database_cleaner-active_record

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: Tests

on: [push, pull_request]

jobs:
  test:
    name: 'Ruby: ${{ matrix.ruby }}, Rails: ${{ matrix.rails }}'
    runs-on: 'ubuntu-22.04'
    strategy:
      fail-fast: false
      matrix:
        ruby: ['3.2', '3.1', '3.0', '2.7', '2.6', '2.5']
        rails: ['5.1', '5.2', '6.0', '6.1', '7.0', '7.1']
        exclude:
          - ruby: '3.2'
            rails: '5.1'
          - ruby: '3.2'
            rails: '5.2'
          - ruby: '3.2'
            rails: '6.0'
          - ruby: '3.2'
            rails: '6.1'
          - ruby: '3.1'
            rails: '5.1'
          - ruby: '3.1'
            rails: '5.2'
          - ruby: '3.1'
            rails: '6.0'
          - ruby: '3.0'
            rails: '5.1'
          - ruby: '3.0'
            rails: '5.2'
          - ruby: '2.6'
            rails: '7.0'
          - ruby: '2.5'
            rails: '7.0'
          - ruby: '2.5'
            rails: '7.1'
          - ruby: '2.6'
            rails: '7.1'
    env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
      BUNDLE_GEMFILE: gemfiles/rails_${{ matrix.rails }}.gemfile
    steps:
      - uses: actions/checkout@v3
      - name: Set up Ruby ${{ matrix.ruby }}
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true # 'bundle install' and cache
          rubygems: ${{ matrix.ruby == '2.5' && 'default' || 'latest' }}
      - name: Copy config file
        run: cp spec/support/sample.config.yml spec/support/config.yml
      - name: Run tests
        run: bundle exec rake

    services:
      mysql:
        image: mysql:5.7
        env:
            MYSQL_ALLOW_EMPTY_PASSWORD: yes
        ports:
            - 3306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

      postgres:
        # Docker Hub image
        image: postgres
        # Provide the password for postgres
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
        ports:
          - 5432:5432
        # Set health checks to wait until postgres has started
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5