name: Ruby on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: ruby: - 2.5.x - 2.6.x - 2.7.x activerecord: - 5.1.5 - 5.2.0 - 6.0.0 - 6.1.0 strategy: - array - ltree env: BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/activerecord_${{ matrix.activerecord }}.gemfile services: postgres: image: postgres:12.4 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: parentry_test ports: - 5432:5432 # needed because the postgres container does not provide a healthcheck options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: actions/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} - uses: actions/cache@v1 with: path: vendor/bundle key: ${{ runner.os }}-gems-${{ hashFiles(format('gemfiles/activerecord_{0}.gemfile.lock', matrix.activerecord)) }} restore-keys: | ${{ runner.os }}-gems- - name: Install PostgreSQL client run: | sudo apt-get -yqq install libpq-dev - name: Configure Bundler run: | gem install bundler:2.1.4 --no-document bundle config set path 'vendor/bundle' bundle install --jobs 4 --retry 3 - name: Run tests with RSpec uses: paambaati/codeclimate-action@v2.5.4 env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} STRATEGY: ${{ matrix.strategy }} with: coverageCommand: bundle exec rspec debug: false