Skip to content

Relax gemspec to allow Rails 8.0; add Rails main branch to CI #268

Relax gemspec to allow Rails 8.0; add Rails main branch to CI

Relax gemspec to allow Rails 8.0; add Rails main branch to CI #268

Workflow file for this run

name: CI
on:
- pull_request
- push
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ["2.3", "2.4", "2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
appraisal:
- rails52
- rails60
- rails61
- rails70
- rails71
- rails72
- rails_main
db: [POSTGRES, MYSQL, SQLITE]
exclude:
# MySQL has issues on Ruby 2.3
# https://github.com/ruby/setup-ruby/issues/150
- ruby: "2.3"
db: MYSQL
# PostgreSQL is segfaulting on 2.3
# Doesn't seem worth solving.
- ruby: "2.3"
db: POSTGRES
# Rails 5.2 supports Ruby 2.2-2.5
- appraisal: rails52
ruby: "2.6"
- appraisal: rails52
ruby: "2.7"
- appraisal: rails52
ruby: "3.0"
- appraisal: rails52
ruby: "3.1"
- appraisal: rails52
ruby: "3.2"
- appraisal: rails52
ruby: "3.3"
# Rails 6.0 supports Ruby 2.5-2.7
- appraisal: rails60
ruby: "2.3"
- appraisal: rails60
ruby: "2.4"
- appraisal: rails60
ruby: "3.0"
- appraisal: rails60
ruby: "3.1"
- appraisal: rails60
ruby: "3.2"
- appraisal: rails60
ruby: "3.3"
# Rails 6.1 supports Ruby 2.5+
- appraisal: rails61
ruby: "2.3"
- appraisal: rails61
ruby: "2.4"
# Rails 7 supports Ruby 2.7+
- appraisal: rails70
ruby: "2.3"
- appraisal: rails70
ruby: "2.4"
- appraisal: rails70
ruby: "2.5"
- appraisal: rails70
ruby: "2.6"
# Rails 7.1 supports Ruby 2.7+
- appraisal: rails71
ruby: "2.3"
- appraisal: rails71
ruby: "2.4"
- appraisal: rails71
ruby: "2.5"
- appraisal: rails71
ruby: "2.6"
# Rails 7.2 supports Ruby 3.1+
- appraisal: rails72
ruby: "2.3"
- appraisal: rails72
ruby: "2.4"
- appraisal: rails72
ruby: "2.5"
- appraisal: rails72
ruby: "2.6"
- appraisal: rails72
ruby: "2.7"
- appraisal: rails72
ruby: "3.0"
# Rails main supports Ruby 3.2+
- appraisal: rails_main
ruby: "2.3"
- appraisal: rails_main
ruby: "2.4"
- appraisal: rails_main
ruby: "2.5"
- appraisal: rails_main
ruby: "2.6"
- appraisal: rails_main
ruby: "2.7"
- appraisal: rails_main
ruby: "3.0"
- appraisal: rails_main
ruby: "3.1"
services:
postgres:
image: postgres
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: audited_test
ports:
- 5432:5432
# needed because the postgres container does not provide a healthcheck
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
env:
DB_DATABASE: audited_test
DB_USER: root
DB_PASSWORD: "root"
DB_HOST: localhost
steps:
- name: Setup MySQL
run: |
sudo /etc/init.d/mysql start
mysql -e 'CREATE DATABASE audited_test;' -uroot -proot
mysql -e 'SHOW DATABASES;' -uroot -proot
- uses: actions/checkout@v4
- name: Copy Gemfile
run: sed 's/\.\././' gemfiles/${{ matrix.appraisal }}.gemfile > Gemfile
- name: Set up Ruby ${{ matrix.ruby }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run tests
env:
DB: ${{ matrix.db }}
run: bundle exec rake