name: Ruby CI

on:
  pull_request:

jobs:
  test:
    runs-on: cth-ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: https://github.com/ruby/setup-ruby@bfefad842bb982ff05b233bcbc1571d97a87e69f
    - uses: actions/cache@v4
      with:
        path: vendor/bundle
        key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
        restore-keys: |
          ${{ runner.os }}-gems-
    - name: Install dependencies
      run: |
        bundle config path vendor/bundle
        bundle install --jobs 4 --retry 3
    - name: autoload
      run: bin/rails zeitwerk:check
    - name: lint
      run: bin/rubocop
    - name: security
      run: bin/brakeman
    - name: test
      run: |
        bin/rails assets:precompile
        bin/rails test