rubocop-hq/rubocop

View on GitHub
.github/workflows/rubocop.yml

Summary

Maintainability
Test Coverage
###
# Please keep /.mergify.yml synced!
name: CI

on:
  push:
    branches:
      - master
  pull_request:
  workflow_dispatch:

permissions:  # added using https://github.com/step-security/secure-workflows
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  main:
    name: >-
      ${{ matrix.os }} ${{ matrix.ruby }}
    runs-on: ${{ matrix.os }}-latest
    env:
      # See https://github.com/tmm1/test-queue#environment-variables
      TEST_QUEUE_WORKERS: 2
    strategy:
      fail-fast: false
      matrix:
        # [ubuntu, macos, windows]
        os: [windows]
        ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', 'head']
        include:
          - os: windows
            ruby: mingw
        exclude:
          - os: windows
            ruby: head

    steps:
      - name: windows misc
        if: matrix.os == 'windows'
        run: |
          # set TMPDIR, git core.autocrlf
          echo "TMPDIR=$env:RUNNER_TEMP" >> $GITHUB_ENV
          git config --system core.autocrlf false
      - name: checkout
        uses: actions/checkout@v4
      - name: set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true
      - name: spec
        run: bundle exec rake spec
      - name: ascii_spec
        run: bundle exec rake ascii_spec
      - name: internal_investigation
        run: bundle exec rake internal_investigation

  jruby:
    name: JRuby 9.4
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: jruby-9.4
          bundler-cache: true
      - name: spec
        run: bundle exec rake spec
      - name: ascii_spec
        run: bundle exec rake ascii_spec
      - name: internal_investigation
        run: bundle exec rake internal_investigation

  prism:
    runs-on: ubuntu-latest
    name: Prism
    steps:
      - uses: actions/checkout@v4
      - name: set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          # Specify the minimum Ruby version 2.7 required for Prism to run.
          ruby-version: 2.7
          bundler-cache: true
      - name: spec
        env:
          PARSER_ENGINE: parser_prism
        run: bundle exec rake prism_spec

  rspec4:
    runs-on: ubuntu-latest
    name: RSpec 4
    steps:
      - uses: actions/checkout@v4
      - name: Use latest RSpec 4 from `4-0-dev` branch
        run: |
          sed -e "/'rspec', '~> 3/d" -i Gemfile
          cat << EOF > Gemfile.local
            gem 'rspec', github: 'rspec/rspec-metagem', branch: '4-0-dev'
            gem 'rspec-core', github: 'rspec/rspec-core', branch: '4-0-dev'
            gem 'rspec-expectations', github: 'rspec/rspec-expectations', branch: '4-0-dev'
            gem 'rspec-mocks', github: 'rspec/rspec-mocks', branch: '4-0-dev'
            gem 'rspec-support', github: 'rspec/rspec-support', branch: '4-0-dev'
          EOF
      - name: set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7
          bundler-cache: true
      - name: spec
        run: bundle exec rake spec