5555DOCS_ONLY=true
5656LINT_CONFIG_CHANGED=false
5757PRO_LINT_CONFIG_CHANGED=false
58- RUBY_CHANGED =false
58+ RUBY_CORE_CHANGED =false
5959RSPEC_CHANGED=false
6060SPEC_DUMMY_CHANGED=false
6161JS_CHANGED=false
62- GENERATORS_CHANGED=false # needs to be duplicated to pro
63- PRO_RUBY_CHANGED =false
62+ GENERATORS_CHANGED=false
63+ PRO_RUBY_CORE_CHANGED =false
6464PRO_RSPEC_CHANGED=false
6565PRO_JS_CHANGED=false
6666PRO_DUMMY_CHANGED=false
@@ -75,22 +75,22 @@ while IFS= read -r file; do
7575 # Don't change DOCS_ONLY flag, just continue
7676 ;;
7777
78- # Ruby source code
79- react_on_rails/lib/* .rb |react_on_rails/lib/** /* .rb|Gemfile|Gemfile.lock |rakelib/run_rspec.rake |rakelib/node_package.rake |rakelib/dummy_apps .rake)
78+ # Generators (MUST be before Ruby source code to avoid being caught by lib/**/*.rb)
79+ react_on_rails/lib/generators/ * |react_on_rails/lib/generators/ ** /* |react_on_rails/spec/react_on_rails/generators/ * |react_on_rails/spec/react_on_rails/generators/ ** / * |rakelib/example_type.rb |rakelib/examples_config.yml |rakelib/shakapacker_examples .rake|.github/workflows/examples.yml )
8080 DOCS_ONLY=false
81- RUBY_CHANGED =true
81+ GENERATORS_CHANGED =true
8282 ;;
8383
84- # Ruby gem-specific specs
85- react_on_rails/spec/react_on_rails/ * |react_on_rails/spec/react_on_rails/ ** /* |.github/workflows/gem-tests.yml )
84+ # Ruby core source code (non-generator lib files)
85+ react_on_rails/lib/ * .rb |react_on_rails/lib/ ** /* .rb|Gemfile|Gemfile.lock|rakelib/run_rspec.rake|rakelib/node_package.rake|rakelib/dummy_apps.rake )
8686 DOCS_ONLY=false
87- RSPEC_CHANGED =true
87+ RUBY_CORE_CHANGED =true
8888 ;;
8989
90- # Generators
91- react_on_rails/lib/generators /* |react_on_rails/lib/generators /** /* |rakelib/example_type.rb|rakelib/examples_config.yml|rakelib/shakapacker_examples.rake|. github/workflows/examples .yml)
90+ # Ruby gem-specific specs (MUST be after Generators since this pattern catches ALL specs including generator specs)
91+ react_on_rails/spec/react_on_rails /* |react_on_rails/spec/react_on_rails /** /* |. github/workflows/gem-tests .yml)
9292 DOCS_ONLY=false
93- GENERATORS_CHANGED =true
93+ RSPEC_CHANGED =true
9494 ;;
9595
9696 # JavaScript/TypeScript source (including tests, scripts, and package files)
@@ -108,7 +108,7 @@ while IFS= read -r file; do
108108 # React on Rails Pro source code
109109 react_on_rails_pro/lib/* |react_on_rails_pro/lib/** /* )
110110 DOCS_ONLY=false
111- PRO_RUBY_CHANGED =true
111+ PRO_RUBY_CORE_CHANGED =true
112112 ;;
113113
114114 # JavaScript/TypeScript Pro source (including tests, scripts, and package files)
@@ -151,11 +151,11 @@ while IFS= read -r file; do
151151 # Changes to CI infrastructure should trigger tests to validate the changes work
152152 script/* |script/** /* |bin/* |bin/** /* |.github/workflows/* |.github/actions/* |.github/actions/** /* |lefthook.yml)
153153 DOCS_ONLY=false
154- RUBY_CHANGED =true # Trigger all tests for CI infrastructure changes
154+ RUBY_CORE_CHANGED =true # Trigger all tests for CI infrastructure changes
155155 JS_CHANGED=true
156156 SPEC_DUMMY_CHANGED=true
157157 GENERATORS_CHANGED=true
158- PRO_RUBY_CHANGED =true
158+ PRO_RUBY_CORE_CHANGED =true
159159 PRO_JS_CHANGED=true
160160 PRO_DUMMY_CHANGED=true
161161 ;;
@@ -223,14 +223,14 @@ if [ "$DOCS_ONLY" = true ]; then
223223fi
224224
225225echo " Changed file categories:"
226- [ " $RUBY_CHANGED " = true ] && echo -e " ${YELLOW} • Ruby source code${NC} "
226+ [ " $RUBY_CORE_CHANGED " = true ] && echo -e " ${YELLOW} • Ruby core source code${NC} "
227227[ " $JS_CHANGED " = true ] && echo -e " ${YELLOW} • JavaScript/TypeScript code${NC} "
228228[ " $RSPEC_CHANGED " = true ] && echo -e " ${YELLOW} • RSpec tests${NC} "
229229[ " $SPEC_DUMMY_CHANGED " = true ] && echo -e " ${YELLOW} • Dummy app${NC} "
230230[ " $GENERATORS_CHANGED " = true ] && echo -e " ${YELLOW} • Generators${NC} "
231231[ " $PRO_JS_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro JavaScript/TypeScript${NC} "
232232[ " $PRO_RSPEC_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro RSpec tests${NC} "
233- [ " $PRO_RUBY_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro Ruby source code${NC} "
233+ [ " $PRO_RUBY_CORE_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro Ruby core source code${NC} "
234234[ " $PRO_DUMMY_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro Dummy app${NC} "
235235[ " $PRO_NODE_RENDERER_CHANGED " = true ] && echo -e " ${YELLOW} • React on Rails Pro Node Renderer package${NC} "
236236[ " $LINT_CONFIG_CHANGED " = true ] && echo -e " ${YELLOW} • Lint/format configuration${NC} "
@@ -251,39 +251,39 @@ RUN_PRO_TESTS=false
251251RUN_PRO_DUMMY_TESTS=false
252252RUN_PRO_NODE_RENDERER_TESTS=false
253253
254- if [ " $LINT_CONFIG_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ] || [ " $JS_CHANGED " = true ] || [ " $SPEC_DUMMY_CHANGED " = true ]; then
254+ if [ " $LINT_CONFIG_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ] || [ " $JS_CHANGED " = true ] || [ " $SPEC_DUMMY_CHANGED " = true ]; then
255255 RUN_LINT=true
256256fi
257257
258- if [ " $RUBY_CHANGED " = true ] || [ " $RSPEC_CHANGED " = true ]; then
258+ if [ " $RUBY_CORE_CHANGED " = true ] || [ " $RSPEC_CHANGED " = true ] || [ " $GENERATORS_CHANGED " = true ]; then
259259 RUN_RUBY_TESTS=true
260260fi
261261
262262if [ " $JS_CHANGED " = true ]; then
263263 RUN_JS_TESTS=true
264264fi
265265
266- if [ " $SPEC_DUMMY_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ] || [ " $JS_CHANGED " = true ]; then
266+ if [ " $SPEC_DUMMY_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ] || [ " $JS_CHANGED " = true ]; then
267267 RUN_DUMMY_TESTS=true
268268fi
269269
270270if [ " $GENERATORS_CHANGED " = true ]; then
271271 RUN_GENERATORS=true
272272fi
273273
274- if [ " $PRO_LINT_CONFIG_CHANGED " = true ] || [ " $PRO_RUBY_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $PRO_DUMMY_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ]; then
274+ if [ " $PRO_LINT_CONFIG_CHANGED " = true ] || [ " $PRO_RUBY_CORE_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $PRO_DUMMY_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ]; then
275275 RUN_PRO_LINT=true
276276fi
277277
278- if [ " $PRO_RUBY_CHANGED " = true ] || [ " $PRO_RSPEC_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ]; then
278+ if [ " $PRO_RUBY_CORE_CHANGED " = true ] || [ " $PRO_RSPEC_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ]; then
279279 RUN_PRO_TESTS=true
280280fi
281281
282- if [ " $PRO_DUMMY_CHANGED " = true ] || [ " $PRO_RUBY_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ]; then
282+ if [ " $PRO_DUMMY_CHANGED " = true ] || [ " $PRO_RUBY_CORE_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ]; then
283283 RUN_PRO_DUMMY_TESTS=true
284284fi
285285
286- if [ " $PRO_NODE_RENDERER_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CHANGED " = true ]; then
286+ if [ " $PRO_NODE_RENDERER_CHANGED " = true ] || [ " $PRO_JS_CHANGED " = true ] || [ " $RUBY_CORE_CHANGED " = true ]; then
287287 RUN_PRO_NODE_RENDERER_TESTS=true
288288fi
289289
0 commit comments