openSUSE/osem

View on GitHub
.github/workflows/spec.yml

Summary

Maintainability
Test Coverage
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.1.4
          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.1.4
          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