.github/workflows/continuous-integration.yml
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
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
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: 103c3881b137d757cdf9d9201d89d72184fe2676b2eed08bbe930358b08581de
with:
coverageCommand: bundle exec rake spec
coverageLocations: ${{github.workspace}}/coverage/lcov/*.lcov:lcov