Fix building assets in test environment
Webpacker (Ruby wrapper to webpack) uses RAILS_ENV-based environments while the javascript configuration for webpack re-reads this configuration file using the NODE_ENV environment variable. This means that when RAILS_ENV=test, running “assets:precompile” compiled the production packs in “public/packs” while webpacker expects them in “public/packs-test”. This causes Ruby to recompile them on-the-fly, possibly leading to race conditions in parallel_tests. This changes: - Disables on-the-fly compilation in test environment - Changes the javascript part to read the correct environmentremotes/1727458204337373841/tmp_refs/heads/signup-info-prompt
parent
307fb338ee
commit
2df72d0697
|
@ -8,7 +8,7 @@ const glob = require('glob');
|
||||||
|
|
||||||
const configPath = resolve('config', 'webpacker.yml');
|
const configPath = resolve('config', 'webpacker.yml');
|
||||||
const loadersDir = join(__dirname, 'loaders');
|
const loadersDir = join(__dirname, 'loaders');
|
||||||
const settings = safeLoad(readFileSync(configPath), 'utf8')[env.NODE_ENV];
|
const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env.NODE_ENV];
|
||||||
const flavourFiles = glob.sync('app/javascript/flavours/*/theme.yml');
|
const flavourFiles = glob.sync('app/javascript/flavours/*/theme.yml');
|
||||||
const skinFiles = glob.sync('app/javascript/skins/*/*');
|
const skinFiles = glob.sync('app/javascript/skins/*/*');
|
||||||
const flavours = {};
|
const flavours = {};
|
||||||
|
|
|
@ -28,6 +28,10 @@ test:
|
||||||
# Compile test packs to a separate directory
|
# Compile test packs to a separate directory
|
||||||
public_output_path: packs-test
|
public_output_path: packs-test
|
||||||
|
|
||||||
|
# CircleCI precompiles packs prior to running the tests.
|
||||||
|
# Also avoids race conditions in parallel_tests.
|
||||||
|
compile: false
|
||||||
|
|
||||||
production:
|
production:
|
||||||
<<: *default
|
<<: *default
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue