Continuous Deployment to Galaxy from Codeship

Remarks

This topic is heavily inspired by Nate Strausers Migrating Meteor Apps from Modulus to Galaxy with Continuous Deployment from Codeship.

Setup

  • Create a deployment_token.json:

      METEOR_SESSION_FILE=deployment_token.json meteor login
    
  • Create the following environment variables on Codeship: (https://codeship.com/projects/PROJECT_NUMBER/configure_environment)

    • METEOR_TARGET: your.domain.com
    • METEOR_TOKEN: Copy/Paste the contents of deployment_token.json. Something like: {"sessions": {"www.meteor.com": {"session": "12345 ...
    • METEOR_SETTING: Copy/Paste the contents of your settings.json. Something like: {"private": {...
  • Create a new deployment pipeline here https://codeship.com/projects/YOUR_PROJECT_NUMBER/deployment_branches/new

    • We deploy only the master branch. So set: Branch is exactly: master.
  • Add a "Custom Script" as your deployment with the following content:

echo $METEOR_TOKEN > deployment_token.json
echo $METEOR_SETTINGS > deployment_settings.json
meteor npm prune --production
DEPLOY_HOSTNAME=galaxy.meteor.com METEOR_SESSION_FILE=deployment_token.json meteor deploy $METEOR_TARGET --settings deployment_settings.json