-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
The action runs the Ruby linters (Rubocop and Reek) on Pull Requests. * A test file with a fest for the linters! 😋
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# This workflow runs Rubocop and Reek on the Pull Requests to make sure | ||
# no linter warnings slip by. | ||
|
||
name: Ruby Linters | ||
|
||
on: | ||
pull_request: | ||
branches: [ "master" ] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
lint: | ||
|
||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
ruby-version: ['2.7'] | ||
|
||
env: | ||
BUNDLE_GEMFILE: Gemfile.lint | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: ${{ matrix.ruby-version }} | ||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | ||
- name: Run Rubocop | ||
uses: reviewdog/[email protected] | ||
with: | ||
skip_install: true | ||
rubocop_version: gemfile | ||
rubocop_extensions: rubocop-rspec:gemfile | ||
use_bundler: true | ||
- name: Run Reek | ||
uses: reviewdog/[email protected] | ||
with: | ||
reek_version: gemfile |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
AllCops: | ||
Exclude: | ||
- vendor/**/* | ||
- spec/spec_helper.rb | ||
Metrics/BlockLength: | ||
Exclude: | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# frozen_string_literal: true | ||
|
||
source 'https://rubygems.org' | ||
|
||
gem 'panolint', '~> 0' |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# frozen_string_literal: true | ||
|
||
# A class to test the linters | ||
class MyClass | ||
# rubocop:disable Metrics/AbcSize | ||
# rubocop:disable Metrics/CyclomaticComplexity | ||
# rubocop:disable Metrics/MethodLength | ||
# rubocop:disable Metrics/PerceivedComplexity | ||
# rubocop:disable Metrics/ParameterLists | ||
def do_something(one, two, three, four, five, six, seven) | ||
if one.present? && two.present? && three.prsent? && four.present? && five.present? && six.present? && seven.present? | ||
do_something_else_with(one, two, three) | ||
doAnotherThing(four, five, six) | ||
|
||
e = mix(one, two) | ||
|
||
if @valid == TRUE | ||
case five | ||
when 'async' | ||
do_another_thing_with('r', six, seven, e) | ||
when 'sync' | ||
do_another_thing_with('m', seven) | ||
when 'nible' | ||
result = four.map(&:name) | ||
end | ||
end | ||
|
||
five.each do |n| | ||
n += 1 | ||
puts "N is now #{n}" | ||
|
||
next unless seven.start_with?("r") | ||
Check warning on line 32 in lib/something.rb GitHub Actions / lint (2.7)
Check warning on line 32 in lib/something.rb GitHub Actions / lint (2.7)
|
||
download(seven) | ||
if six.start_wuth?("w") | ||
Check warning on line 34 in lib/something.rb GitHub Actions / lint (2.7)
Check warning on line 34 in lib/something.rb GitHub Actions / lint (2.7)
|
||
upload(siv, seven) | ||
end | ||
end | ||
end | ||
|
||
return result | ||
end | ||
# rubocop:enable Metrics/AbcSize | ||
# rubocop:enable Metrics/CyclomaticComplexity | ||
# rubocop:enable Metrics/MethodLength | ||
# rubocop:enable Metrics/PerceivedComplexity | ||
# rubocop:enable Metrics/ParameterLists | ||
|
||
def do_something_else_with(one, two, three) | ||
Check warning on line 48 in lib/something.rb GitHub Actions / lint (2.7)
Check warning on line 48 in lib/something.rb GitHub Actions / lint (2.7)
|
||
if one == true | ||
Check warning on line 49 in lib/something.rb GitHub Actions / lint (2.7)
|
||
puts "Print something here:" | ||
Check warning on line 50 in lib/something.rb GitHub Actions / lint (2.7)
|
||
puts '#{two} - #{three}' | ||
Check warning on line 51 in lib/something.rb GitHub Actions / lint (2.7)
|
||
|
||
@valid = TRUE | ||
end | ||
end | ||
end |