Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 14 additions & 24 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@ jobs:
lint:
runs-on: ubuntu-latest
env:
RUBY_VERSION: ruby-4.0.1
RUBOCOP_CACHE_ROOT: tmp/rubocop
APPRAISAL_NAME: rack_3
BUNDLE_GEMFILE: ./gemfiles/rack_3.gemfile
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0.0
- uses: actions/cache@v4
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/cache@v5
env:
DEPENDENCIES_HASH: ${{ hashFiles('.rubocop.yml', '.rubocop_todo.yml', format('{0}.lock', env.BUNDLE_GEMFILE)) }}
with:
path: vendor/bundle
key: bundle-use-ruby-ubuntu-latest-3.0.0-rack_3-${{ hashFiles(format('{0}.lock', env.BUNDLE_GEMFILE)) }}
path: ${{ env.RUBOCOP_CACHE_ROOT }}
key: rubocop-${{ runner.os }}-${{ env.RUBY_VERSION }}-${{ env.DEPENDENCIES_HASH }}-${{ github.ref_name == github.event.repository.default_branch && github.run_id || 'default' }}
restore-keys: |
bundle-use-ruby-ubuntu-latest-3.0.0-rack_3
- name: bundle install
run: |
bundle config deployment true
bundle config path vendor/bundle
bundle install --jobs 4
rubocop-${{ runner.os }}-${{ env.RUBY_VERSION }}-${{ env.DEPENDENCIES_HASH }}-
- name: "Run rubocop"
run: |
bin/rubocop
bin/rubocop -f github
rspec:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
appraisal_name: [rack_2, rack_3, rails_6_0, rails_6_1]
ruby: [3.0.0]
appraisal_name: [jwt_2, jwt_3, rack_2, rack_3, rails_7_1, rails_7_2, rails_8_0, rails_8_1]
ruby: [3.4.7, 4.0.1]
env:
APPRAISAL_NAME: ${{ matrix.appraisal_name }}
BUNDLE_GEMFILE: ${{ format('./gemfiles/{0}.gemfile', matrix.appraisal_name) }}
Expand All @@ -51,17 +51,7 @@ jobs:
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- uses: actions/cache@v4
with:
path: vendor/bundle
key: bundle-use-ruby-ubuntu-latest-${{ matrix.ruby }}-${{ env.APPRAISAL_NAME }}-${{ hashFiles(format('{0}.lock', env.BUNDLE_GEMFILE)) }}
restore-keys: |
bundle-use-ruby-ubuntu-latest-${{ matrix.ruby }}-${{ env.APPRAISAL_NAME }}
- name: bundle install
run: |
bundle config deployment true
bundle config path vendor/bundle
bundle install --jobs 4
bundler-cache: true
- name: "Run RSpec"
run: |
bin/rspec
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
.bundle
/coverage
/doc
/Gemfile.lock
/pkg
/spec/examples.txt
/.yardoc
/_yardoc/
spec/dummy/log
spec/dummy/tmp
24 changes: 19 additions & 5 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,31 @@
require:
plugins:
- rubocop-factory_bot
- rubocop-rake
- rubocop-rspec

AllCops:
NewCops: enable
Exclude:
- Appraisals
- "bin/*"
- "gemfiles/**/*"
TargetRubyVersion: 3.0
- "vendor/**/*"
TargetRubyVersion: 3.4

Bundler/OrderedGems:
Enabled: false

Gemspec/DateAssignment:
# Explicit is better.
FactoryBot/SyntaxMethods:
Enabled: false

Gemspec/DeprecatedAttributeAssignment:
Enabled: true

# We use appraisals.
Gemspec/DevelopmentDependencies:
Enabled: false

Layout/ArgumentAlignment:
Enabled: false

Expand Down Expand Up @@ -98,7 +109,7 @@ Lint/UnusedMethodArgument:
Enabled: false

Metrics/AbcSize:
Max: 25
Max: 30

# This doesn't work with anything that uses a DSL
Metrics/BlockLength:
Expand All @@ -113,7 +124,7 @@ Metrics/MethodLength:
Naming/MethodName:
Enabled: false

Naming/PredicateName:
Naming/PredicatePrefix:
ForbiddenPrefixes:
- is_

Expand All @@ -126,6 +137,9 @@ RSpec/DescribeClass:
RSpec/DescribedClass:
Enabled: false

RSpec/ExampleWording:
Enabled: false

RSpec/LeadingSubject:
Enabled: false

Expand Down
28 changes: 24 additions & 4 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# frozen_string_literal: true

appraise "jwt_2" do
gem "jwt", ">= 2.2.0", "< 3"
end

appraise "jwt_3" do
gem "jwt", ">= 3", "< 4"
end

appraise "rack_2" do
gem "rack", ">= 2.2", "< 3"
end
Expand All @@ -8,14 +16,26 @@ appraise "rack_3" do
gem "rack", ">= 3", "< 4"
end

appraise "rails_6_0" do
gem "rails", ">= 6", "< 6.1.0"
appraise "rails_7_1" do
gem "rails", ">= 7.1.0", "< 8.0.0"

gem "rspec-rails", "5.0.1"
end

appraise "rails_7_2" do
gem "rails", ">= 7.2.0", "< 8.0.0"

gem "rspec-rails", "5.0.1"
end

appraise "rails_8_0" do
gem "rails", ">= 8.0.0", "< 9.0.0"

gem "rspec-rails", "5.0.1"
end

appraise "rails_6_1" do
gem "rails", ">= 6.1.0", "< 6.2.0"
appraise "rails_8_1" do
gem "rails", ">= 8.0.0", "< 9.0.0"

gem "rspec-rails", "5.0.1"
end
Loading