Version
- Getting started
- Overview
- Installation
- Quickstart
- Upgrading
- Setting up your pipeline
- Determining needs
- Using Plugins
- Deploying your app
- Plugin Packs
- Authoring Plugins
- Creating a plugin
- Pipeline hooks
- The deployment context
- Creating a plugin pack
- Creating in-repo plugins
- Cookbook
- Default options
- Using .env for secrets
- Including a plugin twice
- Development workflow
- The lightning strategy
- S3 walkthrough
- Deploy non-Ember apps
- Reference
- Usage
- Configuration
- Other API/Classes
Deploy non-Ember Apps
While Ember CLI Deploy is specifically aimed towards Ember, it actually has very little integration with the framework and CLI.
For other frameworks, the tool to use is DeployJS. With this, it’s just as easy to deploy your Angular or React application. It’s compatible with most plugins written for Ember CLI Deploy.
Get started by installing the DeployJS CLI, npm install -g @deployjs/cli
. Determine your needs and install plugins provided by the community, or write your own.
Different deployment scenarios require different plugins. In these examples we have taken as a baseline deployment to AWS S3.
Deploying Angular 1
This example assumes you use grunt
to build your application. If you don’t, there’s plugins for alternative build processes.
The application set up looks like the following:
# Install the Build plugin, which builds your app during deployment
npm install --save-dev @deployjs/grunt-build
# Install the S3 plugin, to upload our app and index.html to S3
npm install --save-dev ember-cli-deploy-s3 ember-cli-deploy-s3-index
# Install other plugins, to use gzip, to display past revisions, to do a differential upload, ...
npm install --save-dev ember-cli-deploy-gzip ember-cli-deploy-manifest ember-cli-deploy-revision-data
Some of these plugins require a little configuration - for example, to which S3 bucket to upload the app. These are stored in config/deploy.js
// config/deploy.js
module.exports = function(deployTarget) {
var ENV = {};
ENV['s3'] = {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
bucket: 'my-ember-app',
region: 'us-east-1'
};
ENV['s3-index'] = {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
bucket: 'my-ember-app-index',
region: 'us-east-1'
};
return ENV;
};
Now, we can deploy our application:
ember deploy production
Deploying Angular 2, React, Vue, …
If you’re not building your application with grunt
, other options exist for producing your assets and index.html
. The process as above is the same, with the exception of installing @deployjs/grunt-build
. Instead, you should:
- For Angular 2+ using the Angular CLI,
npm install --save-dev @deployjs/angular-build
- For React using Webpack,
npm install --save-dev @deployjs/react-build
- For other scenarios (like building Vue), build on the existing build plugin - as a reference, have a look at
@deployjs/grunt-build
. They can be just wrappers around a shell command. Create a PR to include it in this list.