mmenanno/lunchmoney

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI

on:
  workflow_dispatch:
  workflow_call:
  schedule:
    # Every day at 9pm
    - cron: '0 21 * * *'

jobs:
  validate:
    name: Validate code
    runs-on: ubuntu-latest

    strategy:
      matrix:
        ruby-version: [3.1, 3.2, 3.3, head]
    continue-on-error: ${{ endsWith(matrix.ruby-version, 'head') }}

    steps:
      -
        name: Checkout
        uses: actions/checkout@v4
      -
        name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
          ruby-version: ${{ matrix.ruby-version }}
      -
        name: RuboCop
        run: bin/rubocop
      -
        name: Typecheck
        run: bin/srb tc
      -
        name: Check for Updatable Sigils
        run: |
            bin/spoom bump --from false --to true --dry
            bin/spoom bump --from true --to strict --dry
      -
        name: Check for DSL rbi updates
        run: bin/tapioca dsl --verify
      -
        name: Markdown Lint
        run: bin/toys mdl
      -
        name: Run Tests (Using Cassettes)
        if: ${{ ! endsWith(matrix.ruby-version, '3.3') }}
        run: bin/toys test
      -
        name: Run Tests (With Remote Calls & Coverage Report)
        if: ${{ endsWith(matrix.ruby-version, '3.3') }}
        uses: paambaati/codeclimate-action@v9.0.0
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
          REMOTE_TESTS_ENABLED: ${{ vars.REMOTE_TESTS_ENABLED }}
          LUNCHMONEY_TOKEN: ${{ secrets.LUNCHMONEY_TOKEN }}
        with:
          coverageCommand: bin/toys test
          coverageLocations: |
            ${{ github.workspace }}/coverage/coverage.json:simplecov