wbotelhos/rating

View on GitHub
.github/workflows/tests.yml

Summary

Maintainability
Test Coverage
name: Tests

on: [push, pull_request]

jobs:
  test:
    env:
      DB: ${{ matrix.db }}

    runs-on: ubuntu-latest

    strategy:
      fail-fast: false

      matrix:
        db:
          - mysql
          - postgres

        ruby:
          - '3.0'
          - '3.1'
          - '3.2'

    services:
      mysql:
        env:
          MYSQL_DATABASE: rating_test
          MYSQL_ALLOW_EMPTY_PASSWORD: yes

        image: mysql:8
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

        ports:
          - 3306:3306

      postgres:
        env:
          POSTGRES_DB: rating_test
          POSTGRES_USER: postgres
          POSTGRES_HOST_AUTH_METHOD: trust

        image: postgres:alpine

        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

        ports:
          - 5432:5432

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Ruby and Bundle Install
        uses: ruby/setup-ruby@v1

        with:
          bundler-cache: true
          ruby-version: ${{ matrix.ruby }}

      - name: Runs tests
        env:
          CI: true
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          COVERAGE: true
          MINIMUM_COVERAGE: 80

        run: bundle exec rake spec

      - name: Runs tests with config enabled
        env:
          CI: true
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          COVERAGE: true
          MINIMUM_COVERAGE: 80

        run: bundle exec rake spec_config

      - name: Runs tests with config enabled for extra scopes
        env:
          CI: true
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          COVERAGE: true
          MINIMUM_COVERAGE: 80

        run: bundle exec rake spec_config_with_extra_scopes