Skip to content

Checkpoint

Checkpoint #79

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
- name: Security audit dependencies
run: bundle exec bundler-audit --update
- name: Run RuboCop
run: bundle exec rubocop --parallel
test:
name: Test (Ruby ${{ matrix.ruby }})
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
include:
- ruby: '3.2'
experimental: false
- ruby: '3.3'
experimental: false
- ruby: '3.4'
experimental: true
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Set up database
run: RAILS_ENV=test bundle exec rake -f spec/dummy/Rakefile db:schema:load
- name: Run tests
run: bundle exec rspec
all-green:
name: All tests passing
if: always()
needs: [lint, test]
runs-on: ubuntu-latest
steps:
- name: Check status
run: |
if [ "${{ needs.lint.result }}" != "success" ] || [ "${{ needs.test.result }}" != "success" ]; then
echo "One or more jobs failed"
exit 1
fi