This will give us proper red/green signal on the test suite while still running the entire matrix.
59 lines
1.4 KiB
YAML
59 lines
1.4 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
workflow_dispatch:
|
|
jobs:
|
|
rubocop:
|
|
name: RuboCop
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUNDLE_ONLY: rubocop
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
- name: Setup Ruby and install gems
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 3.3.0
|
|
bundler-cache: true
|
|
- name: Run Rubocop
|
|
run: bundle exec rubocop --parallel
|
|
tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
ruby-version:
|
|
- "3.1"
|
|
- "3.2"
|
|
- "3.3"
|
|
- "3.4"
|
|
gemfile:
|
|
- Gemfile
|
|
- gemfiles/rails_edge.gemfile
|
|
exclude:
|
|
- ruby-version: "3.1"
|
|
gemfile: gemfiles/rails_edge.gemfile
|
|
name: ${{ format('Tests (Ruby {0})', matrix.ruby-version) }}
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Remove gemfile.lock
|
|
run: rm Gemfile.lock
|
|
|
|
- name: Install Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: ${{ matrix.ruby-version }}
|
|
bundler-cache: true
|
|
|
|
- name: Run tests
|
|
run: bin/test
|
|
env:
|
|
RUBYOPT: ${{ startsWith(matrix.ruby-version, '3.4.') && '--enable=frozen-string-literal' || '' }}
|