diff --git a/.github/workflows/lint-js-and-ruby.yml b/.github/workflows/lint-js-and-ruby.yml index 5c345d172d..8067b07885 100644 --- a/.github/workflows/lint-js-and-ruby.yml +++ b/.github/workflows/lint-js-and-ruby.yml @@ -11,6 +11,7 @@ on: paths-ignore: - '**.md' - 'docs/**' + workflow_dispatch: jobs: detect-changes: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 874439614b..3be04b11b1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,6 +11,7 @@ on: paths-ignore: - '**.md' - 'docs/**' + workflow_dispatch: jobs: detect-changes: diff --git a/.github/workflows/package-js-tests.yml b/.github/workflows/package-js-tests.yml index 1411f29a4f..02be726a48 100644 --- a/.github/workflows/package-js-tests.yml +++ b/.github/workflows/package-js-tests.yml @@ -15,6 +15,7 @@ on: - 'docs/**' - 'lib/**' - 'spec/react_on_rails/**' + workflow_dispatch: jobs: detect-changes: diff --git a/.github/workflows/pro-integration-tests.yml b/.github/workflows/pro-integration-tests.yml index 78b9917253..96913b31d7 100644 --- a/.github/workflows/pro-integration-tests.yml +++ b/.github/workflows/pro-integration-tests.yml @@ -5,6 +5,7 @@ on: branches: - 'master' pull_request: + workflow_dispatch: defaults: run: diff --git a/.github/workflows/pro-lint.yml b/.github/workflows/pro-lint.yml index fa7d85adc9..a790cf3f84 100644 --- a/.github/workflows/pro-lint.yml +++ b/.github/workflows/pro-lint.yml @@ -5,6 +5,7 @@ on: branches: - 'master' pull_request: + workflow_dispatch: defaults: run: diff --git a/.github/workflows/pro-package-tests.yml b/.github/workflows/pro-package-tests.yml index e69993ea1e..db92de6f2a 100644 --- a/.github/workflows/pro-package-tests.yml +++ b/.github/workflows/pro-package-tests.yml @@ -5,6 +5,7 @@ on: branches: - 'master' pull_request: + workflow_dispatch: defaults: run: diff --git a/.github/workflows/rspec-package-specs.yml b/.github/workflows/rspec-package-specs.yml index 6787ec323b..cb1c062661 100644 --- a/.github/workflows/rspec-package-specs.yml +++ b/.github/workflows/rspec-package-specs.yml @@ -15,6 +15,7 @@ on: - 'docs/**' - 'packages/react-on-rails/src/**' - 'node_package/src/**' + workflow_dispatch: jobs: detect-changes: diff --git a/rakelib/shakapacker_examples.rake b/rakelib/shakapacker_examples.rake index c17f2f8e0a..47b56fc583 100644 --- a/rakelib/shakapacker_examples.rake +++ b/rakelib/shakapacker_examples.rake @@ -37,7 +37,22 @@ namespace :shakapacker_examples do # rubocop:disable Metrics/BlockLength sh_in_dir(example_type.dir, "echo \"gem 'shakapacker', '>= 8.2.0'\" >> #{example_type.gemfile}") bundle_install_in(example_type.dir) sh_in_dir(example_type.dir, "rake shakapacker:install") - sh_in_dir(example_type.dir, example_type.generator_shell_commands) + + # Skip validation during generator run since npm package isn't installed yet + # + # ENV Variable Scope: We prefix each shell command with the ENV variable rather than + # setting it in the Ruby process for these reasons: + # + # 1. Each command spawns a new shell process with its own environment + # 2. The ENV variable is automatically scoped to each command (no cleanup needed) + # 3. This differs from the generator approach in lib/generators/react_on_rails/install_generator.rb + # which sets ENV in the Ruby process and requires explicit cleanup + # + # This approach is simpler and safer for rake tasks that invoke shell commands. + generator_commands = example_type.generator_shell_commands.map do |cmd| + "REACT_ON_RAILS_SKIP_VALIDATION=true #{cmd}" + end + sh_in_dir(example_type.dir, generator_commands) sh_in_dir(example_type.dir, "yarn") end end