Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflows / CI: updated to Rails 7 #936

Merged
merged 1 commit into from
Oct 4, 2024
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ jobs:
- 3.2
- 3.1
rails:
- 6.1 # TODO: move to 7.2
- 7.2
include:
# Edge
- { ruby: 'head', rails: 'edge', allow-fail: true }
# Outdated
- { ruby: '3.0', rails: '6.1' } # TODO: move to 7.1
- { ruby: '3.0', rails: '7.1' }
- { ruby: '2.7', rails: '6' } # RSpec AR Expectations support Rails 7.1 since Ruby 3.0
- { ruby: '2.6', rails: '6' }
- { ruby: '2.5', rails: '6' }
Expand Down
3 changes: 1 addition & 2 deletions .rspec
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
--color
--order rand
--format progress
8 changes: 5 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ gem 'puma'

platforms :ruby do
if RUBY_VERSION >= "2.5.0"
gem 'sqlite3', '~> 1.4'
gem 'sqlite3'
else
gem 'sqlite3', '~> 1.3.6'
end
Expand All @@ -17,8 +17,6 @@ platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
end

gem 'mongoid'

case rails_version = ENV['RAILS_VERSION']
when nil
gem 'rails'
Expand All @@ -28,6 +26,10 @@ else
gem 'rails', "~> #{rails_version}.0"
end

gem 'mongoid' unless
rails_version == 'edge'
gem 'active_model_serializers'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved here to be loaded on application start.


case RUBY_VERSION
when '2.6'...'3.0'
gem "turbo-rails", "<= 2.0.7"
Expand Down
1 change: 0 additions & 1 deletion draper.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ Gem::Specification.new do |s|
s.add_development_dependency 'rspec-activerecord-expectations'
s.add_development_dependency 'minitest-rails'
s.add_development_dependency 'capybara'
s.add_development_dependency 'active_model_serializers', '>= 0.10'
s.add_development_dependency 'rubocop'
s.add_development_dependency 'simplecov'
end
1 change: 0 additions & 1 deletion spec/dummy/.rspec
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
--color
--format progress
4 changes: 1 addition & 3 deletions spec/dummy/app/decorators/mongoid_post_decorator.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
if defined?(Mongoid)
class MongoidPostDecorator < Draper::Decorator
end
class MongoidPostDecorator < Draper::Decorator
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file should define the class when the app is eager loaded.

end
6 changes: 2 additions & 4 deletions spec/dummy/app/models/admin.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
if defined?(Devise)
class Admin
extend Devise::Models
end
class Admin
extend Devise::Models if defined? Devise
end
6 changes: 2 additions & 4 deletions spec/dummy/app/models/mongoid_post.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
if defined?(Mongoid)
class MongoidPost
include Mongoid::Document
end
class MongoidPost
include Mongoid::Document if defined? Mongoid
end
2 changes: 0 additions & 2 deletions spec/dummy/app/models/post.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require 'turbo/broadcastable' if defined? Turbo::Broadcastable # HACK: looks weird, but works

class Post < ApplicationRecord
# attr_accessible :title, :body

Expand Down
6 changes: 2 additions & 4 deletions spec/dummy/app/models/user.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
if defined?(Devise)
class User
extend Devise::Models
end
class User
extend Devise::Models if defined? Devise
end
74 changes: 22 additions & 52 deletions spec/dummy/config/application.rb
Original file line number Diff line number Diff line change
@@ -1,64 +1,34 @@
require File.expand_path('../boot', __FILE__)

def attempt_require(file)
require file
rescue LoadError
end
require_relative 'boot'

require 'rails/all'
require 'draper'
attempt_require 'mongoid'
attempt_require 'devise'
attempt_require 'turbo-rails'
require 'active_model_serializers'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Kernel.silence_warnings do
Bundler.require(*Rails.groups)
end

module Dummy
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)

# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named.
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]

# Activate observers that should always be running.
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de

# Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"

# Enable escaping HTML in JSON.
config.active_support.escape_html_entities_in_json = true

# Use SQL instead of Active Record's schema dumper when creating the database.
# This is necessary if your schema can't be completely dumped by the schema dumper,
# like if you have constraints or database-specific column types
# config.active_record.schema_format = :sql
config.load_defaults Rails::VERSION::STRING.to_f

# Enforce whitelist mode for mass assignment.
# This will create an empty whitelist of attributes available for mass-assignment for all models
# in your app. As such, your models will need to explicitly whitelist or blacklist accessible
# parameters by using an attr_accessible or attr_protected declaration.
# config.active_record.whitelist_attributes = true
# For compatibility with applications that use this config
# config.action_controller.include_all_helpers = false # FIXME

# Enable the asset pipeline
# config.assets.enabled = true
# Please, add to the `ignore` list any other `lib` subdirectories that do
# not contain `.rb` files, or that should not be reloaded or eager loaded.
# Common ones are `templates`, `generators`, or `middleware`, for example.
config.try :autoload_lib, ignore: %w[assets tasks] # HACK for Rails below 7

# Version of your assets, change this if you want to expire all your assets
# config.assets.version = '1.0'
# Configuration for the application, engines, and railties goes here.
#
# These settings can be overridden in specific environments using the files
# in config/environments, which are processed later.
#
# config.time_zone = "Central Time (US & Canada)"
# config.eager_load_paths << Rails.root.join("extras")

# HACK: allows testing in production & development environments
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
Expand Down
87 changes: 65 additions & 22 deletions spec/dummy/config/environments/development.rb
Original file line number Diff line number Diff line change
@@ -1,35 +1,78 @@
Dummy::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
require "active_support/core_ext/integer/time"

# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.

# In the development environment your application's code is reloaded any time
# it changes. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
config.enable_reloading = true

# Do not eager load code on boot.
config.eager_load = false

# Show full error reports.
config.consider_all_requests_local = true

# Enable server timing.
config.server_timing = true

# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Enable/disable caching. By default caching is disabled.
# Run rails dev:cache to toggle caching.
if Rails.root.join("tmp/caching-dev.txt").exist?
config.action_controller.perform_caching = true
config.action_controller.enable_fragment_cache_logging = true

config.cache_store = :memory_store
config.public_file_server.headers = { "Cache-Control" => "public, max-age=#{2.days.to_i}" }
else
config.action_controller.perform_caching = false

config.cache_store = :null_store
end

# Store uploaded files on the local file system (see config/storage.yml for options).
config.active_storage.service = :local

# Print deprecation notices to the Rails logger
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false

# Disable caching for Action Mailer templates even if Action Controller
# caching is enabled.
config.action_mailer.perform_caching = false

config.action_mailer.default_url_options = { host: "localhost", port: 3000 }

# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log

# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
# Raise exceptions for disallowed deprecations.
config.active_support.disallowed_deprecation = :raise

config.eager_load = false
# Tell Active Support which deprecation messages to disallow.
config.active_support.disallowed_deprecation_warnings = []

# Raise exception on mass assignment protection for Active Record models
# config.active_record.mass_assignment_sanitizer = :strict
# Raise an error on page load if there are pending migrations.
config.active_record.migration_error = :page_load

# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
# config.active_record.auto_explain_threshold_in_seconds = 0.5
# Highlight code that triggered database queries in logs.
config.active_record.verbose_query_logs = true

# Do not compress assets
# config.assets.compress = false
# Highlight code that enqueued background job in logs.
# config.active_job.verbose_enqueue_logs = true

# Expands the lines which load the assets
# config.assets.debug = true
# Suppress logger output for asset requests.
# config.assets.quiet = true

config.active_storage.service = :local
# Raises error for missing translations.
# config.i18n.raise_on_missing_translations = true

# Annotate rendered view with file names.
# config.action_view.annotate_rendered_view_with_filenames = true

# Uncomment if you wish to allow Action Cable access from any origin.
# config.action_cable.disable_request_forgery_protection = true

# Raise error when a before_action's only/except options reference missing actions.
# config.action_controller.raise_on_missing_callback_actions = true
end
Loading