rondale-sc / ember-publisher

8 stars 2 forks source link

Ember Publisher

Build Status

This is a micro-lib designed to help unify s3 publishing for Ember and related Ember projects.

Each project using Ember Publisher needs a file in project_configs that gives information about how it'll be published to S3. That project file needs to export a function that returns an object that looks like this:

{ 'ember.js':
  { contentType: 'text/javascript',
    destinations: {
      canary: [ 'my-bucket-url' ]  //list of urls you'd like to publish to canary
    }
  }
};

Each key should be the name of the file in the dist folder of the project. destinations should contain a key for each channel you'd like to publish to whose value is an array of bucket urls. See project_configs/ember-proj.js for more details.

Assumptions

You MUST have the following defined in your environment to execute publishing correctly:

The TRAVIS prefixed variables are set by travis-ci by default so you shouldn't worry about those unless you are running locally.

Constructor

project - this is the word that when suffixed with proj.js points to a file in project_configs. (ie ember would yield project_configs/ember-proj.js.

projectConfigPath - It is now possible to specify the absolute path of your project's config by setting setting projectConfigPath. This will take precedence above the project property (see above)

In the above case, if the current branch is master then it will utilize the wildcard destinations. The no-op branch is to ensure that it doesn't default to the wildcard branch.

Channels

Currently the supported channels are as follows

(branch/channel)

Utilize wildcard set of destinations

Override channels by overriding the currenBranch function on your instance of publisher. Like so:

  publisher.currentBranch = function() {
    return (TRAVIS_BRANCH === 'master') ? 'wildcard' : 'no-op';
  };