rafasoares/human_enum

View on GitHub
.github/workflows/tests.yml

Summary

Maintainability
Test Coverage
name: tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_call:

permissions:
  contents: read

jobs:
  test-current:
    name: Run specs against current Ruby and Rails

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - uses: ruby/setup-ruby@v1
      with:
        rubygems: latest
        bundler-cache: true

    - name: Run tests and upload code coverage to Code Climate
      uses: paambaati/codeclimate-action@v6
      env:
        CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
      with:
        coverageCommand: bin/rspec --format json --out spec/reports/rspec.json

    - name: Upload test results
      uses: actions/upload-artifact@v4
      if: success() || failure()
      with:
        name: test-results
        path: spec/reports/rspec.json

  test-matrix:
    name: Test against Ruby ${{ matrix.ruby }} and Rails ${{ matrix.rails }}
    needs: test-current

    runs-on: ubuntu-latest

    strategy:
      matrix:
        ruby: ['3.0', '3.1', '3.2', '3.3']
        rails: ['6.1', '7.0', '7.1']

    env:
      BUNDLE_LOCKFILE: rails-${{ matrix.rails }}

    steps:
    - uses: actions/checkout@v4

    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        rubygems: latest
        bundler-cache: true

    - name: Run specs
      run: bin/rspec --no-profile