Skip to content

an ember-cli-deploy plugin pack for PN

License

Notifications You must be signed in to change notification settings

PrecisionNutrition/ember-cli-deploy-pn-pack

Repository files navigation

ember-cli-deploy-pn-pack

An ember-cli-deploy plugin pack to implement a deployment pattern for PrecisonNutrition's Ember apps


**WARNING: This plugin pack is only compatible with ember-cli-deploy versions >= 0.6.0**

This plugin pack is prepared for internal use by PN and is open-sourced for educational purposes but will not be supported for shared community use.

This package bundles ember-cli-deploy-lightning-pack, ember-cli-deploy-slack and ember-cli-deploy-ssh-tunnel and a util method to minimize duplicated config code between apps.

Finally as part of the config step this build pack uses scp to copy the ENV configuration from the deployTarget server.

It also has a blueprint for your config/deploy.js file to get you started.

Installation

ember install ember-cli-deploy
ember install ember-cli-deploy-pn-pack

The necessary set of plugins will be available to ember-cli-deploy and an example deploy/config.js file will be generated for you to customize with information about your app.

The generated blueprint will add a requirement for ember-cli-deploy-pn-pack-config in package.json.

This is private npm module that exposes the basic config needed to boostrap the build process and download the remote ENV file.

Dev workflow config

If you want to use the Dev Workflow just add

+    emberCLIDeploy: {
+      runOnPostBuild: (env === 'development') ? 'development-postbuild' : false,
+      shouldActivate: true
+    },

to your ember-cli-build.js file.

What is a plugin pack?

A "plugin pack" is a concept supported by ember-cli-deploy that allows a single addon to make multiple plugins available by adding a single direct depedency to your project.

What plugins are made available?

Required api for config module

The private config module is expected to return an object with 3 methods and 1 property

* pluginPackConfig.isValidTarget(deployTarget)
* pluginPackConfig.domain(deployTarget)
* pluginPackConfig.isProduction(deployTarget)
* pluginPackConfig.SSH_USERNAME

Credits

This pack is heavily inspired by Yapp's plugin pack thanks @lukemelia and team for doing the hard work :)