.github/workflows/ci.yml
---
name: CI
on:
push:
branches:
- master
paths-ignore:
- "*.md"
pull_request:
branches:
- master
paths-ignore:
- "*.md"
jobs:
tests:
name: Ruby ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
ruby:
- 2.3
- 2.4
- 2.5
- 2.6
- 3.0
- ruby-head
- jruby-head
- truffleruby-head
allow_failure: [false]
include:
- ruby: jruby-9.2.13.0
os: ubuntu-latest
coverage: false
allow_failure: true
- ruby: 2.7
os: ubuntu-latest
coverage: true
allow_failure: false
env:
COVERAGE: ${{ matrix.coverage }}
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.allow_failure }}
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: Install bundler
run: gem install bundler
- name: Install dependencies
run: bundle install --jobs 4 --retry 3
- name: Set up coverage reporter
if: ${{ matrix.coverage }}
run: |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
./cc-test-reporter before-build
- name: Run tests
timeout-minutes: 10
run: bundle exec rake ci
- name: Send coverage report
if: ${{ matrix.coverage }}
run: ./cc-test-reporter after-build