name: Next-rails

on:
  pull_request:
    branches:
      - master
  workflow_dispatch:

jobs:
  next-rails:
    if: contains(github.head_ref, 'next-rails')
    runs-on: ubuntu-latest
    name: next-rails
    env:
      OSEM_DB_ADAPTER: sqlite3
      RAILS_ENV: test
    strategy:
      matrix:
        suite: [models, features, controllers, ability, leftovers]
      fail-fast: false
    steps:
      - uses: actions/checkout@v2
      - name: Sets env vars for next-rails
        run: |
          echo "BUNDLE_GEMFILE=Gemfile.next" >> $GITHUB_ENV
          echo "BUNDLE_CACHE_PATH=vendor/cache.next" >> $GITHUB_ENV
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.5
          bundler-cache: true
      - name: Prepare spec
        run: |
          rm -f osem_test osem_development
          bundle exec rake db:setup --trace
          bundle exec bin/rails webdrivers:chromedriver:update
      - name: spec/${{ matrix.suite }}
        run: bundle exec rake spec:${{ matrix.suite }}
      - name: coverage upload ${{ matrix.suite }}
        uses: codacy/codacy-coverage-reporter-action@master
        if: github.ref == 'refs/heads/master'
        with:
          project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
          coverage-reports: coverage/coverage.xml
