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.2" - "3.3" - "3.4" gemfile: - 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' || '' }}