From f21f8f38daddc8d37ac85854fe4534d9b14d4e99 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 22 Oct 2024 09:38:28 +1100 Subject: [PATCH 1/3] Compile assets on demand in test environment We still do it in CI to prevent flaky specs. Otherwise, when a spec needs to compile assets, it may time out. --- .github/workflows/build.yml | 22 ++++++++++++++++------ config/webpacker.yml | 5 +---- spec/support/precompile_assets.rb | 18 ------------------ 3 files changed, 17 insertions(+), 28 deletions(-) delete mode 100644 spec/support/precompile_assets.rb diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6ca8a00698..c6df6aeab9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,8 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load + bin/rails runner spec/support/seeds.rb - name: Run tests env: @@ -84,6 +85,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/controllers/**/*_spec.rb}" run: | git show --no-patch # the commit being tested (which is often a merge due to actions/checkout@v3) + bin/rails assets:precompile bin/rake knapsack_pro:rspec - name: Save SimpleCov file @@ -135,7 +137,7 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load - name: Run tests env: @@ -211,7 +213,8 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load + bin/rails runner spec/support/seeds.rb - name: Run tests @@ -230,6 +233,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/admin/**/*_spec.rb}" run: | + bin/rails assets:precompile bin/rake knapsack_pro:queue:rspec - name: Save SimpleCov file @@ -298,7 +302,8 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load + bin/rails runner spec/support/seeds.rb - name: Run tests @@ -317,6 +322,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/consumer/**/*_spec.rb}" run: | + bin/rails assets:precompile bin/rake knapsack_pro:queue:rspec - name: Save SimpleCov file @@ -386,7 +392,8 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load + bin/rails runner spec/support/seeds.rb - name: Run tests @@ -405,6 +412,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/serializers/**/*_spec.rb,engines/**/*_spec.rb}" run: | + bin/rails assets:precompile bin/rake knapsack_pro:rspec - name: Save SimpleCov file @@ -465,7 +473,8 @@ jobs: - name: Set up database run: | - bin/rake db:create db:schema:load + bin/rails db:create db:schema:load + bin/rails runner spec/support/seeds.rb - name: Run tests env: @@ -482,6 +491,7 @@ jobs: #KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN: "{engines/**/*_spec.rb,spec/models/**/*_spec.rb,spec/controllers/**/*_spec.rb,spec/serializers/**/*_spec.rb,spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/system/**/*_spec.rb}" run: | + bin/rails assets:precompile bin/rake knapsack_pro:rspec - name: Save SimpleCov file diff --git a/config/webpacker.yml b/config/webpacker.yml index 2e933db911..ce07e4ce99 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -93,7 +93,4 @@ production: &production cache_manifest: true test: - <<: *production - - # Compile test packs to a separate directory - public_output_path: packs-test + <<: *default diff --git a/spec/support/precompile_assets.rb b/spec/support/precompile_assets.rb deleted file mode 100644 index edab33e902..0000000000 --- a/spec/support/precompile_assets.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -RSpec.configure do |config| - config.before(:all) do - # We can use webpack-dev-server for tests, too! - # Useful if you working on a frontend code fixes and want to verify them via system tests. - next if Webpacker.dev_server.running? - - specs_needing_assets = %i[controller feature mailer request system view] - examples = RSpec.world.filtered_examples.values.flatten - types = examples.map(&:metadata).pluck(:type).uniq - - if types.intersect?(specs_needing_assets) - $stdout.puts "\n Precompiling assets.\n" - Webpacker.compile - end - end -end From 690d13797173ea26bbf509b149ca54b3938a06db Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 24 Jan 2025 16:47:41 +1100 Subject: [PATCH 2/3] Combine rake tasks for efficiency --- .github/workflows/build.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c6df6aeab9..6b2ebccf6a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -85,8 +85,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/controllers/**/*_spec.rb}" run: | git show --no-patch # the commit being tested (which is often a merge due to actions/checkout@v3) - bin/rails assets:precompile - bin/rake knapsack_pro:rspec + bin/rails assets:precompile knapsack_pro:rspec - name: Save SimpleCov file uses: actions/upload-artifact@v4 @@ -233,8 +232,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/admin/**/*_spec.rb}" run: | - bin/rails assets:precompile - bin/rake knapsack_pro:queue:rspec + bin/rails assets:precompile knapsack_pro:queue:rspec - name: Save SimpleCov file uses: actions/upload-artifact@v4 @@ -322,8 +320,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/consumer/**/*_spec.rb}" run: | - bin/rails assets:precompile - bin/rake knapsack_pro:queue:rspec + bin/rails assets:precompile knapsack_pro:queue:rspec - name: Save SimpleCov file uses: actions/upload-artifact@v4 @@ -412,8 +409,7 @@ jobs: KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/serializers/**/*_spec.rb,engines/**/*_spec.rb}" run: | - bin/rails assets:precompile - bin/rake knapsack_pro:rspec + bin/rails assets:precompile knapsack_pro:rspec - name: Save SimpleCov file uses: actions/upload-artifact@v4 @@ -491,8 +487,7 @@ jobs: #KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN: "{engines/**/*_spec.rb,spec/models/**/*_spec.rb,spec/controllers/**/*_spec.rb,spec/serializers/**/*_spec.rb,spec/lib/**/*_spec.rb,spec/migrations/**/*_spec.rb,spec/system/**/*_spec.rb}" run: | - bin/rails assets:precompile - bin/rake knapsack_pro:rspec + bin/rails assets:precompile knapsack_pro:rspec - name: Save SimpleCov file uses: actions/upload-artifact@v4 From 95625c16b2d67fc96684680203980038350330f1 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 24 Jan 2025 16:52:11 +1100 Subject: [PATCH 3/3] Comment on seeds --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b2ebccf6a..0443fc530a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,7 +67,7 @@ jobs: - name: Set up database run: | bin/rails db:create db:schema:load - bin/rails runner spec/support/seeds.rb + bin/rails runner spec/support/seeds.rb # Asset compile needs a country. - name: Run tests env: @@ -213,7 +213,7 @@ jobs: - name: Set up database run: | bin/rails db:create db:schema:load - bin/rails runner spec/support/seeds.rb + bin/rails runner spec/support/seeds.rb # Asset compile needs a country. - name: Run tests @@ -301,7 +301,7 @@ jobs: - name: Set up database run: | bin/rails db:create db:schema:load - bin/rails runner spec/support/seeds.rb + bin/rails runner spec/support/seeds.rb # Asset compile needs a country. - name: Run tests @@ -390,7 +390,7 @@ jobs: - name: Set up database run: | bin/rails db:create db:schema:load - bin/rails runner spec/support/seeds.rb + bin/rails runner spec/support/seeds.rb # Asset compile needs a country. - name: Run tests @@ -470,7 +470,7 @@ jobs: - name: Set up database run: | bin/rails db:create db:schema:load - bin/rails runner spec/support/seeds.rb + bin/rails runner spec/support/seeds.rb # Asset compile needs a country. - name: Run tests env: