main-branch/drive_v3

View on GitHub
.github/workflows/continuous_integration.yml

Summary

Maintainability
Test Coverage
name: Continuous Integration

on:
  push:
    branches: [main]

  pull_request:
    branches: [main]

  workflow_dispatch:

env:
  # SimpleCov suggests setting the JRuby --debug flag to ensure that coverage
  # results from JRuby are complete.
  JRUBY_OPTS: --debug

# Supported platforms / Ruby versions:
#  - Ubuntu: MRI (3.1, 3.2, 3.3), TruffleRuby (24), JRuby (9.4)
#  - Windows: MRI (3.1), JRuby (9.4)

jobs:
  build:
    name: Ruby ${{ matrix.ruby }} on ${{ matrix.operating-system }}

    runs-on: ${{ matrix.operating-system }}
    continue-on-error: true

    strategy:
      fail-fast: false
      matrix:
        ruby: ["3.1", "3.2", "3.3", "jruby-9.4", "truffleruby-24"]
        operating-system: [ubuntu-latest]
        include:
          - ruby: "3.1"
            operating-system: windows-latest
          - ruby: "jruby-9.4"
            operating-system: windows-latest

    env:
      JRUBY_OPTS: --debug

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

      - name: Initialize Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true

      - name: Run rake
        run: bundle exec rake

  coverage:
    name: Report test coverage to CodeClimate

    needs: [build]
    runs-on: ubuntu-latest

    env:
      JRUBY_OPTS: --debug

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

      - name: Initialize Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.1
          bundler-cache: true

      - name: Report test coverage
        uses: paambaati/codeclimate-action@v9
        env:
          CC_TEST_REPORTER_ID: d9fb05c3480afd6287a0e6f97622d84fc33b9573b61ad6957188d3ce647f42b4
        with:
          coverageCommand: bundle exec rake spec
          coverageLocations: ${{github.workspace}}/coverage/lcov/*.lcov:lcov