name: Specs on: push: branches: - master pull_request: branches: - master workflow_dispatch: jobs: linters: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ruby/setup-ruby@v1 with: ruby-version: 3.3.2 bundler-cache: true - run: bundle exec rubocop - run: bundle exec haml-lint app/views spec: needs: linters runs-on: ubuntu-latest name: spec env: OSEM_DB_ADAPTER: sqlite3 RAILS_ENV: test strategy: matrix: suite: [models, features, controllers, ability, leftovers] steps: - uses: actions/checkout@v2 - uses: ruby/setup-ruby@v1 with: ruby-version: 3.3.2 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 bundle exec rake factory_bot:lint RAILS_ENV=test - 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