Skip to content

Duke-GCB/bespin-ui

Repository files navigation

Bespin-UI

An ember.js application frontend for bespin-api.

CircleCI

Prerequisites

You will need the following things properly installed on your computer.

Installation

  • git clone git@github.com:Duke-GCB/bespin-ui.git this repository
  • cd bespin-ui
  • npm install

Running / Development

  • Check the Bespin API endpoint configured in config/environment.js
  • ember serve
  • Visit your app at http://localhost:4200.

Running Tests

  • ember test
  • ember test --server

Manual Builds

  • ember build (Local Development)
  • JOB_WATCHER_URL="wss://bespin-ws.gcb.duke.edu" ember build --environment production (production)

Automated Releases

The npm version command triggers the automated release process using Travis-CI and GitHub. npm version takes care of creating a git tag using semantic versioning. It runs the preversion and postversion scripts specified in package.json before and after tagging the new version. These scripts ensure that releases happen from a clean and current master branch, passes tests, and pushes the resulting tag to GitHub.

The following command is all that's needed to produce a release:

npm version patch

You can also use major or minor for different version increments, or customize the commit message with -m

Deployment Details

We use Docker and Ansible to deploy this application, as described in the build_ember_app and bespin_web roles.

Production-ready archives are built on-demand as described by the bespin.yml playbook

The build_ember_app role produces a production built Ember application in a Docker volume, which is later attached to the web server container

The build configuration (release version and JOB_WATCHER_URL) are provided in variables to the build_ember_app role, allowing differing configurations for dev and prod.