Skip to content

Add Ruby 3.3 to CI matrix #67

Add Ruby 3.3 to CI matrix

Add Ruby 3.3 to CI matrix #67

Workflow file for this run

name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', 'jruby-9.3']
gemfile:
- gemfiles/mysql2/6-0.gemfile
- gemfiles/postgresql/6-0.gemfile
- gemfiles/sqlite3/6-0.gemfile
- gemfiles/mysql2/6-1.gemfile
- gemfiles/postgresql/6-1.gemfile
- gemfiles/sqlite3/6-1.gemfile
- gemfiles/mysql2/7-0.gemfile
- gemfiles/postgresql/7-0.gemfile
- gemfiles/sqlite3/7-0.gemfile
- gemfiles/mysql2/7-1.gemfile
- gemfiles/postgresql/7-1.gemfile
- gemfiles/sqlite3/7-1.gemfile
include:
#
# The future
#
# Active Record head
- ruby: '2.7'
gemfile: gemfiles/mysql2/master.gemfile
- ruby: '2.7'
gemfile: gemfiles/postgresql/master.gemfile
- ruby: '2.7'
gemfile: gemfiles/sqlite3/master.gemfile
- ruby: '3.0'
gemfile: gemfiles/mysql2/master.gemfile
- ruby: '3.0'
gemfile: gemfiles/postgresql/master.gemfile
- ruby: '3.0'
gemfile: gemfiles/sqlite3/master.gemfile
- ruby: '3.1'
gemfile: gemfiles/mysql2/master.gemfile
- ruby: '3.1'
gemfile: gemfiles/postgresql/master.gemfile
- ruby: '3.1'
gemfile: gemfiles/sqlite3/master.gemfile
# MRI Ruby head
- ruby: head
gemfile: gemfiles/mysql2/master.gemfile
- ruby: head
gemfile: gemfiles/postgresql/master.gemfile
- ruby: head
gemfile: gemfiles/sqlite3/master.gemfile
- ruby: head
gemfile: gemfiles/mysql2/7-0.gemfile
- ruby: head
gemfile: gemfiles/postgresql/7-0.gemfile
- ruby: head
gemfile: gemfiles/sqlite3/7-0.gemfile
# JRuby head
- ruby: jruby-head
gemfile: gemfiles/mysql2/6-1.gemfile
- ruby: jruby-head
gemfile: gemfiles/postgresql/6-1.gemfile
- ruby: jruby-head
gemfile: gemfiles/sqlite3/6-1.gemfile
#
# Current
#
# MRI Ruby 2.6
- ruby: '2.6'
gemfile: gemfiles/mysql2/6-0.gemfile
- ruby: '2.6'
gemfile: gemfiles/postgresql/6-0.gemfile
- ruby: '2.6'
gemfile: gemfiles/sqlite3/6-0.gemfile
- ruby: '2.6'
gemfile: gemfiles/mysql2/6-1.gemfile
- ruby: '2.6'
gemfile: gemfiles/postgresql/6-1.gemfile
- ruby: '2.6'
gemfile: gemfiles/sqlite3/6-1.gemfile
# Rails 5.2
- ruby: '2.6'
gemfile: gemfiles/mysql2/5-2.gemfile
- ruby: '2.6'
gemfile: gemfiles/postgresql/5-2.gemfile
- ruby: '2.6'
gemfile: gemfiles/sqlite3/5-2.gemfile
- ruby: '2.7'
gemfile: gemfiles/mysql2/5-2.gemfile
- ruby: '2.7'
gemfile: gemfiles/postgresql/5-2.gemfile
- ruby: '2.7'
gemfile: gemfiles/sqlite3/5-2.gemfile
- ruby: 'jruby-9.2'
gemfile: gemfiles/mysql2/5-2.gemfile
- ruby: 'jruby-9.2'
gemfile: gemfiles/postgresql/5-2.gemfile
- ruby: 'jruby-9.2'
gemfile: gemfiles/sqlite3/5-2.gemfile
#
# The past
#
# EOL Active Record
# Rails 3.2 was maintained longer and is ruby 2.2 compatible
- ruby: '2.2'
gemfile: gemfiles/postgresql/3-2.gemfile
- ruby: '2.2'
gemfile: gemfiles/sqlite3/3-2.gemfile
# Rails <= 4.0 was only compatible with ruby 2.0
# The test were running, but there are known incompatibilites
- ruby: 2.0.0
gemfile: gemfiles/postgresql/3-0.gemfile
- ruby: 2.0.0
gemfile: gemfiles/sqlite3/3-0.gemfile
- ruby: 2.0.0
gemfile: gemfiles/postgresql/3-1.gemfile
- ruby: 2.0.0
gemfile: gemfiles/sqlite3/3-1.gemfile
- ruby: 2.0.0
gemfile: gemfiles/postgresql/4-0.gemfile
- ruby: 2.0.0
gemfile: gemfiles/sqlite3/4-0.gemfile
# Rails 4.1 was only compatible with ruby 2.1
- ruby: '2.1'
gemfile: gemfiles/postgresql/4-1.gemfile
- ruby: '2.1'
gemfile: gemfiles/sqlite3/4-1.gemfile
# Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4
- ruby: '2.4'
gemfile: gemfiles/mysql2/4-2.gemfile
- ruby: '2.4'
gemfile: gemfiles/postgresql/4-2.gemfile
- ruby: '2.4'
gemfile: gemfiles/sqlite3/4-2.gemfile
# Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4
- ruby: '2.4'
gemfile: gemfiles/mysql2/5-0.gemfile
- ruby: '2.4'
gemfile: gemfiles/postgresql/5-0.gemfile
- ruby: '2.4'
gemfile: gemfiles/sqlite3/5-0.gemfile
# Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5
- ruby: '2.5'
gemfile: gemfiles/mysql2/5-1.gemfile
- ruby: '2.5'
gemfile: gemfiles/postgresql/5-1.gemfile
- ruby: '2.5'
gemfile: gemfiles/sqlite3/5-1.gemfile
#
# The parallel dimension
#
# Rubinius (Isn't supported on Github Actions)
# - rvm: rbx-2
# gemfile: gemfiles/mysql2/6-0.gemfile
# - rvm: rbx-2
# gemfile: gemfiles/postgresql/6-0.gemfile
# - rvm: rbx-2
# gemfile: gemfiles/sqlite3/6-0.gemfile
continue-on-error: ${{ endsWith(matrix.gemfile, 'master.gemfile') || endsWith(matrix.ruby, 'head') }}
services:
postgres:
# AR before 4.2.6 doesn't work with 12
image: postgres:11-alpine
# Provide the password for postgres
env:
POSTGRES_DB: delayed_job_test
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: delayed_job_test
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
env:
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Run tests
env:
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
run: bundle exec rspec
- name: Coveralls Parallel
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }}
parallel: true
finish:
needs: test
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true