ember-cli-deploy-fastboot-app-server CircleCI

An ember-cli-deploy plugin to deploy Ember FastBoot apps that are deployed via fastboot-app-server

This plugin relies on a FastBoot-app build being present in context.distDir. When you are building your application with ember-cli-deploy-build this will work out of the box. Otherwise you have to create your app build manually before running ember deploy.

What is an ember-cli-deploy plugin?

A plugin is an addon that can be executed as a part of the ember-cli-deploy pipeline. A plugin will implement one or more of the ember-cli-deploy's pipeline hooks.

For more information on what plugins are and how they work, please refer to the Plugin Documentation.

Quick Start

To get up and running quickly, do the following:

$ ember install ember-cli-deploy-fastboot-app-server
  • Run the pipeline
$ ember deploy production

ember-cli-deploy Hooks Implemented

For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.

  • configure
  • setup
  • willBuild
  • didPrepare

Configuration Options

For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.

distDir

The root directory where the FastBoot build will be searched in. By default, this option will use the distDir property of the deployment context.

Default: context.distDir

fastbootDistDir

The root directory where the zipped FastBoot-build will be copied to.

Default: tmp/fastboot-deploy

revisionKey

The unique revision number for the version of the app. By default this option will use either the revision passed in from the command line or the revisionData.revisionKey property from the deployment context.

Default: context.commandOptions.revision || context.revisionData.revisionKey

fastbootArchivePrefix

The prefix that will be used in combination with a revisionkey to build up the identifier for the revision you are deploying.

Default: dist-

ignoreFiles

Allows to specify a glob pattern to exclude certain files. To exclude all *.map files, set it to "**/*.map".

Default" undefined

fastbootDownloaderManifestContent

A function that gets added to the deploy context so that other plugins can update an app-manifest file that is used by fastboot-app-server notifiers and -downloaders to update the FastBoot-app served via fastboot-app-server.

Default:

return function(bucket, key) {
  return `
    {
      "bucket": "${bucket}",
      "key": "${key}"
    }
  `;
}

What does this plugin do exactly?

This plugin is meant to be used in combination with fastboot-app-server and follows the deployment instructions from the FastBoot-docs. It will zip the application-build and update the deployment context with the necessary artifacts for other ember-cli-deploy-fastboot-app-server-plugins to finish the deployment (e.g. upload the zipped application build to a S3-bucket).

Prerequisites

The following properties are expected to be present on the deployment context object:

Running Tests

  • yarn test