diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 804551fd7..119575574 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,34 @@ jobs: fail-fast: false matrix: include: + # Edge Rails (?) builds >= 2.7 + - ruby: 3.2 + env: + RAILS_VERSION: 'main' + - ruby: 3.1 + env: + RAILS_VERSION: 'main' + - ruby: '3.0' + env: + RAILS_VERSION: 'main' + - ruby: 2.7 + env: + RAILS_VERSION: 'main' + + # Rails 7.1 builds >= 2.7 + - ruby: 3.2 + env: + RAILS_VERSION: '~> 7.1.0' + - ruby: 3.1 + env: + RAILS_VERSION: '~> 7.1.0' + - ruby: '3.0' + env: + RAILS_VERSION: '~> 7.1.0' + - ruby: 2.7 + env: + RAILS_VERSION: '~> 7.1.0' + # Rails 7.0 builds >= 2.7 - ruby: 3.2 env: diff --git a/Rakefile b/Rakefile index 8350ad976..da1a6fc94 100644 --- a/Rakefile +++ b/Rakefile @@ -97,7 +97,11 @@ namespace :smoke do task app: ["clobber:app", "generate:app", "generate:stuff", :smoke] desc "run in the example app" - task({ run: ["clobber:app", "generate:app", "generate:stuff"] }, [:cmd]) do |_t, args| + task :run, [:cmd] do |_t, args| + unless ENV['SKIP_GENERATE'] + ["clobber:app", "generate:app", "generate:stuff"].map { |task| Rake::Task[task].invoke } + end + in_example_app args.cmd.to_s end diff --git a/example_app_generator/generate_stuff.rb b/example_app_generator/generate_stuff.rb index b1aca9187..9f5c04fd3 100644 --- a/example_app_generator/generate_stuff.rb +++ b/example_app_generator/generate_stuff.rb @@ -32,6 +32,7 @@ def source_paths end def setup_tasks + copy_file 'config/initializers/zeitwerk.rb' copy_file 'app/models/in_memory/model.rb' copy_file 'lib/rails/generators/in_memory/model/model_generator.rb' copy_file 'lib/rails/generators/in_memory/model/templates/model.rb.erb' diff --git a/example_app_generator/no_active_record/config/initializers/zeitwerk.rb b/example_app_generator/no_active_record/config/initializers/zeitwerk.rb new file mode 100644 index 000000000..c0c557c68 --- /dev/null +++ b/example_app_generator/no_active_record/config/initializers/zeitwerk.rb @@ -0,0 +1,3 @@ +if Rails.autoloaders.respond_to?(:main) + Rails.autoloaders.main.ignore('lib/rails/generators/in_memory/model/model_generator.rb') +end