Johnny Oshika
Johnny Oshika

Reputation: 57502

Ember CLI: Build for staging

I'd like to create a build of an Ember CLI app for a staging environment. For staging, I'd like to essentially do exactly the same thing as production (minification, fingerprinting, exclude tests, etc), but want to pick up the environment variables for development. To attempt this, I changed my environment.js file to account for staging:

if (environment === 'development' || environment === 'staging') {
  ENV.someApiKey = 'test-api-key';
}

if (environment === 'production') {
  ENV.someApiKey = 'production-api-key';
}

When I run ember build --environment=staging, the proper staging environment variables are set, but all of the other build processes that would run for production doesn't. Is there a way to tell Ember CLI to build for production but pick up environment variables for development?

Upvotes: 5

Views: 544

Answers (1)

Nikos
Nikos

Reputation: 7552

Ember sets a flag depending on whether production ONLY is specified in /ember-cli/lib/broccoli/ember-app.js:

var isProduction = this.env === 'production';

and then it uses the settings specific to production.

So if you want to have a staging build use a process to modify the environment.js before your run ember build then when the build is finished revert the file back to normal. We should probably make this process more flexible in the future.

Upvotes: 1

Related Questions