.github/workflows/ci.yml
name: CI
on:
pull_request:
branches: ["master", "main"]
push:
branches: ["master", "main"]
concurrency:
group: ${{ github.ref }}-CI
cancel-in-progress: true
jobs:
linters:
runs-on: ubuntu-latest
name: linter/ruby
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0
bundler-cache: true
- name: Run linters
run: bundle exec rake code_analysis
test:
runs-on: ubuntu-latest
container: ${{ matrix.ruby }}
strategy:
fail-fast: false
matrix:
include:
- ruby: ruby:3.0
coverage: true
- ruby: ruby:3.1
- ruby: ruby:3.2
- ruby: ruby:3.3
name: test/ruby ${{ matrix.ruby }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Bundle install
run: bundle install -j$(nproc) --retry 3
- name: Run tests
run: bundle exec rspec
timeout-minutes: 1
- name: Test & publish code coverage
uses: paambaati/codeclimate-action@v5.0.0
if: matrix.coverage && github.ref == 'refs/heads/master'
env:
CC_TEST_REPORTER_ID: cb01575b98b3b80848a3bc292ca6145860871470e5d0669453030d36578f9115
with:
coverageCommand: bundle exec rspec
coverageLocations: ${{ github.workspace }}/coverage/coverage.json:simplecov
debug: true