Drowze/aspirebudgeting_ruby

View on GitHub
.github/workflows/workflow.yml

Summary

Maintainability
Test Coverage
name: CI

on: push

jobs:
  build_and_test:
    name: Build, test and coverage
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7
      - name: Install dependencies
        run: |
          gem install bundler
          bundler install
      - name: Rubocop
        run: bundle exec rubocop
      - name: Ensure latest fixtures
        env:
          GOOGLE_ACCOUNT_TYPE: service_account
          GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
          GOOGLE_CLIENT_EMAIL: ${{ secrets.GOOGLE_CLIENT_EMAIL }}
          GOOGLE_PRIVATE_KEY: ${{ secrets.GOOGLE_PRIVATE_KEY }}
        run: bundle exec rake fixtures:validate
      - name: Run RSpec and publish coverage on Code Climate
        uses: paambaati/codeclimate-action@v2.7.5
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
        with:
          coverageCommand: bundle exec rspec --format progress

  test_multipe_versions:
    name: >-
      Test on ${{ matrix.os }} ${{ matrix.ruby }}
    runs-on: ${{ matrix.os }}-latest
    strategy:
      matrix:
        os: [ubuntu, macos]
        ruby: [2.5, 2.6, 2.7]
        exclude:
          - os: ubuntu
            ruby: 2.7
    steps:
      - uses: actions/checkout@v2
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
      - name: Install dependencies
        run: |
          gem install bundler
          bundler install
      - name: Run RSpec
        run: bundle exec rspec --format progress