Merge pull request #1991 from corsonknowles/cover_one_more_branch #2392
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
confirm_config_and_documentation: | |
runs-on: ubuntu-latest | |
name: Confirm config and documentation | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: bundle exec rake confirm_config documentation_syntax_check confirm_documentation | |
main: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
ruby: | |
- "2.7" | |
- "3.0" | |
- "3.1" | |
- "3.2" | |
- "3.3" | |
- ruby-head | |
- jruby-9.4 | |
task: | |
- internal_investigation | |
- spec | |
name: "Ruby ${{ matrix.ruby }}: ${{ matrix.task }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "${{ matrix.ruby }}" | |
bundler-cache: true | |
- run: NO_COVERAGE=true bundle exec rake ${{ matrix.task }} | |
coverage: | |
runs-on: ubuntu-latest | |
name: "Test coverage" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: bundle exec rake spec | |
edge-rubocop: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
task: | |
- internal_investigation | |
- spec | |
name: "Edge RuboCop: ${{ matrix.task }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use latest RuboCop from `master` | |
run: | | |
echo "gem 'rubocop', github: 'rubocop/rubocop'" > Gemfile.local | |
cat Gemfile.local | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: bundle exec rubocop -V | |
- run: NO_COVERAGE=true bundle exec rake ${{ matrix.task }} | |
oldest-rubocop: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
task: | |
- spec | |
name: "Oldest RuboCop: ${{ matrix.task }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use oldest RuboCop allowed by gemspec | |
run: | | |
sed -nr "s/ *spec.add_dependency 'rubocop', '~> ([0-9\.]+)'/gem 'rubocop', '= \1'/p" \ | |
rubocop-rspec.gemspec > Gemfile.local | |
cat Gemfile.local | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: bundle exec rubocop -V | |
- run: NO_COVERAGE=true bundle exec rake ${{ matrix.task }} | |
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/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 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: NO_COVERAGE=true bundle exec rake spec | |
prism: | |
runs-on: ubuntu-latest | |
name: Prism | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use prism parser | |
run: | | |
cat << EOF > Gemfile.local | |
gem 'prism' | |
EOF | |
- 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 | |
- env: | |
NO_COVERAGE: true | |
PARSER_ENGINE: parser_prism | |
run: bundle exec rake spec |