Skip to content

Commit

Permalink
fix CI workflows, add new rubies to test matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
serggl committed May 20, 2024
1 parent 368049d commit 26aebf9
Show file tree
Hide file tree
Showing 20 changed files with 74 additions and 26 deletions.
14 changes: 8 additions & 6 deletions .github/workflows/checkstyle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Rubocop
on:
push:
branches:
- master
- "*"

pull_request:
branches:
Expand All @@ -15,18 +15,20 @@ jobs:

steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.5.0
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler: 1
ruby-version: 3.2
bundler-cache: true

- name: Install rubocop
run: gem install rubocop -v "~>1.63"

- name: Run rubocop
run: bundle exec rubocop --parallel --fail-level R
run: rubocop --parallel --fail-level R
15 changes: 8 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Test
on:
push:
branches:
- master
- "*"

pull_request:
branches:
Expand All @@ -18,29 +18,30 @@ jobs:
timeout-minutes: 15

strategy:
fail-fast: false
matrix:
ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7, 3.0]
ruby-version: [2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3]

steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.5.0
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler: 1

- uses: actions/cache@v2
- uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-bundle-${{ matrix.ruby-version }}-v2-${{ hashFiles('rails-data-migrations.gemspec', 'Appraisals') }}
key: ${{ runner.os }}-bundle-${{ matrix.ruby-version }}-v3-${{ hashFiles('rails-data-migrations.gemspec', 'Appraisals') }}
restore-keys: |
${{ runner.os }}-bundle-${{ matrix.ruby-version }}-v2-
${{ runner.os }}-bundle-${{ matrix.ruby-version }}-v3-
- name: Install dependencies
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
/.idea/
spec/db/
gemfiles/
vendor/
*.gem
13 changes: 12 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@ AllCops:
Exclude:
- 'vendor/**/*'
- 'gemfiles/**/*'
TargetRubyVersion: 2.7

Layout/TrailingBlankLines:
Gemspec/RequiredRubyVersion:
Enabled: false

Layout/TrailingEmptyLines:
Enabled: false

Metrics/BlockLength:
Expand All @@ -12,8 +16,15 @@ Metrics/BlockLength:
Metrics/LineLength:
Max: 120

Naming/FileName:
Exclude:
- lib/rails-data-migrations.rb

Style/Documentation:
Enabled: false

Style/HashSyntax:
Enabled: false

Style/NumericLiterals:
Enabled: false
6 changes: 6 additions & 0 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

ruby_version = Gem::Version.new(RUBY_VERSION)

if ruby_version < Gem::Version.new('2.7.0')
Expand All @@ -18,19 +20,23 @@ if ruby_version < Gem::Version.new('3.0.0')

appraise 'rails-5.1' do
gem 'rails', '~> 5.1.0'
gem 'sqlite3', '~> 1.3.6'
end

appraise 'rails-5.2' do
gem 'rails', '~> 5.2.0'
gem 'sqlite3', '~> 1.3.6'
end
end

if ruby_version >= Gem::Version.new('2.5.0')
appraise 'rails-6.0' do
gem 'rails', '~> 6.0.0'
gem 'sqlite3', '~> 1.4.0'
end

appraise 'rails-6.1' do
gem 'rails', '~> 6.1.0'
gem 'sqlite3', '~> 1.4.0'
end
end
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

source 'https://rubygems.org'

# Specify your gem's dependencies in activerecord-data-migrations.gemspec
Expand Down
2 changes: 2 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'bundler/gem_tasks'
require 'rspec/core/rake_task'

Expand Down
2 changes: 2 additions & 0 deletions lib/active_record/data_migration.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'rails/version'

module ActiveRecord
Expand Down
4 changes: 3 additions & 1 deletion lib/generators/data_migration_generator.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# frozen_string_literal: true

require 'rails/generators'
require 'rails-data-migrations'

class DataMigrationGenerator < Rails::Generators::NamedBase
source_root File.expand_path('../templates', __FILE__)
source_root File.expand_path('templates', __dir__)

def create_migration_file
migration_file_name =
Expand Down
2 changes: 2 additions & 0 deletions lib/generators/templates/data_migration_generator.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

class ClassName < ActiveRecord::DataMigration
def up
# put your code here
Expand Down
4 changes: 2 additions & 2 deletions lib/rails-data-migrations.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# rubocop:disable Naming/FileName
# frozen_string_literal: true

require 'rails'
require 'active_record'
require 'active_record/data_migration'
require 'rails_data_migrations/version'
require 'rails_data_migrations/log_entry'
require 'rails_data_migrations/migrator'
require 'rails_data_migrations/railtie'
# rubocop:enable Naming/FileName
4 changes: 3 additions & 1 deletion lib/rails_data_migrations/log_entry.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# frozen_string_literal: true

module RailsDataMigrations
class LogEntry < ::ActiveRecord::SchemaMigration
class << self
def table_name
ActiveRecord::Base.table_name_prefix + 'data_migrations' + ActiveRecord::Base.table_name_suffix
"#{ActiveRecord::Base.table_name_prefix}data_migrations#{ActiveRecord::Base.table_name_suffix}"
end

def index_name
Expand Down
4 changes: 3 additions & 1 deletion lib/rails_data_migrations/migrator.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module RailsDataMigrations
class Migrator < ::ActiveRecord::Migrator
MIGRATOR_SALT = 2053462855
Expand Down Expand Up @@ -61,7 +63,7 @@ def list_pending_migrations
already_migrated = get_all_versions
list_migrations.reject { |m| already_migrated.include?(m.version) }
else
open(migrations_path).pending_migrations
open(migrations_path).pending_migrations # rubocop:disable Security/Open
end
end

Expand Down
2 changes: 2 additions & 0 deletions lib/rails_data_migrations/railtie.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'rails'

module RailsDataMigrations
Expand Down
4 changes: 3 additions & 1 deletion lib/rails_data_migrations/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

module RailsDataMigrations
VERSION = '1.2.0'.freeze
VERSION = '1.2.0'
end
6 changes: 5 additions & 1 deletion lib/tasks/data_migrations.rake
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# frozen_string_literal: true

require 'rake'

namespace :data do
def apply_single_migration(direction, version)
raise 'VERSION is required' unless version

RailsDataMigrations::Migrator.run_migration(
direction,
RailsDataMigrations::Migrator.migrations_path,
Expand Down Expand Up @@ -42,7 +45,8 @@ namespace :data do
desc 'Skip single data migration using VERSION'
task skip: :init_migration do
version = ENV['VERSION'].to_i
raise 'VERSION is required' unless version > 0
raise 'VERSION is required' unless version.positive?

if RailsDataMigrations::LogEntry.where(version: version).any?
puts "data migration #{version} was already applied."
else
Expand Down
7 changes: 4 additions & 3 deletions rails-data-migrations.gemspec
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
lib = File.expand_path('../lib', __FILE__)
# frozen_string_literal: true

lib = File.expand_path('lib', __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'rails_data_migrations/version'

Expand All @@ -17,12 +19,11 @@ Gem::Specification.new do |spec|
end
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']
spec.required_ruby_version = '>= 2.3'

spec.add_runtime_dependency 'rails', '>= 4.0.0'

spec.add_development_dependency 'appraisal', '~> 2.1'
spec.add_development_dependency 'rake', '>= 12.3.3'
spec.add_development_dependency 'rspec', '3.5.0'
spec.add_development_dependency 'rubocop', '0.52.1'
spec.add_development_dependency 'sqlite3', '~> 1.3'
end
4 changes: 3 additions & 1 deletion spec/data_migrations_spec.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'spec_helper'

describe RailsDataMigrations do
Expand Down Expand Up @@ -44,7 +46,7 @@
end

def load_rake_rasks
load File.expand_path('../../lib/tasks/data_migrations.rake', __FILE__)
load File.expand_path('../lib/tasks/data_migrations.rake', __dir__)
Rake::Task.define_task(:environment)
end

Expand Down
Empty file.
4 changes: 3 additions & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

require 'rails/generators'
require 'rake'

$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
require 'rails-data-migrations'

ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: ':memory:'
Expand Down

0 comments on commit 26aebf9

Please sign in to comment.