.github/workflows/main.yml
name: Test
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
test_sqlite:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ['3.1', '3.2', '3.3']
rails: ['6.1', '7.0', '7.1', '7.2']
name: SQLite / Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
steps:
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: Install gems
env:
MATRIX_RAILS_VERSION: ${{ matrix.rails }}
run: |
export BUNDLE_GEMFILE="${GITHUB_WORKSPACE}/gemfiles/rails_${MATRIX_RAILS_VERSION}.gemfile"
bundle install --jobs 4 --retry 3
- name: RSpec
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
DB: sqlite
run: bundle exec rake
test_mysql:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: password
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3
strategy:
fail-fast: false
matrix:
ruby: ['3.1', '3.2', '3.3']
rails: ['6.1', '7.0', '7.1', '7.2']
name: MySQL / Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
steps:
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: Install gems
env:
MATRIX_RAILS_VERSION: ${{ matrix.rails }}
run: |
export BUNDLE_GEMFILE="${GITHUB_WORKSPACE}/gemfiles/rails_${MATRIX_RAILS_VERSION}.gemfile"
bundle install --jobs 4 --retry 3
- name: Setup database
run: |
mysql -e 'create database IF NOT EXISTS unread_test;' -u root --password=password -P 3306 -h 127.0.0.1
- name: RSpec
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
DB: mysql
run: bundle exec rake
test_postgres:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
ruby: ['3.1', '3.2', '3.3']
rails: ['6.1', '7.0', '7.1', '7.2']
name: PostgreSQL / Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }}
steps:
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- name: Install gems
env:
MATRIX_RAILS_VERSION: ${{ matrix.rails }}
run: |
export BUNDLE_GEMFILE="${GITHUB_WORKSPACE}/gemfiles/rails_${MATRIX_RAILS_VERSION}.gemfile"
bundle install --jobs 4 --retry 3
- name: Setup database
run: |
PGPASSWORD=postgres psql -c 'create database unread_test;' -U postgres -p 5432 -h localhost
- name: RSpec
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
DB: postgres
run: bundle exec rake