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 environment
This commit is contained in:
		
							parent
							
								
									22a48adabc
								
							
						
					
					
						commit
						ae2ffc7af1
					
				
					 2 changed files with 5 additions and 1 deletions
				
			
		|  | @ -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 a new issue