herokupipelines4travis
v3.0.8
Published
Heroku Pipelines for Travis
Readme
Heroku Pipelines for Travis CI
Initial setup
Create application and configure pipeline on Heroku.
To initiate project follow commands:
npm install herokupipelines4travis lodash --save-dev
$(npm bin)/hp4t setupPackage lodash is optional - install it if you want to use it in infrastructure/.
You can edit files:
.travis.yml- Travis CI configuration fileinfrastructure/- directory with infrastructure configurationbase.js- base configurationstage.js- stage environment configurationproduction.js- production environment configuration
Convention
For simplify usage you should define:
alias hp4t="$(npm bin)/hp4t"Setup commands
hp4t setup- initialise projecthp4t export app_name [heroku_api_key]- export existing Heroku application configration
Commands for Travis CI
hp4t init- initialise runtime environmenthp4t provision environment_name- provision Heroku apphp4t pipeline- setup Heroku pipelinehp4t deploy app_name- deploy code to Heroku apphp4t run app_name "command with params"- run command on Heroku application (useful for database migration)hp4t promote app_name- promote existing application to next environmenthp4t package output-file.tgz- build a tarball (tgz) with dependencies for Npm based projectshp4t deploy-tarball app_name file.tgz- deploy tarball file to a Heroku aplication
Read more
Example Travis configuration file
.travis.yml
---
language: node_js
node_js: stable
env:
global:
# ========== Heroku Pipelines for Travis =========
# HEROKU_API_KEY
- secure: "..."
- HP4T_HEROKU_APPNAME_STAGE=hp4t-test-stage
- HP4T_HEROKU_APPNAME_PRODUCTION=hp4t-test
cache:
directories:
- node_modules
install:
- npm install
script:
- npm test
- npm lint
deploy:
- provider: script
skip_cleanup: true
script: make deploy
on:
branch: master
after_success:
- hp4t notify-rollbarMakefile
deploy:
hp4t init
hp4t package build.tgz
hp4t pipeline
hp4t provision stage
hp4t deploy-tarball build.tgz ${HP4T_HEROKU_APPNAME_STAGE}
hp4t run ${HP4T_HEROKU_APPNAME_STAGE} "npm run migrate-database"
hp4t provision production
hp4t promote ${HP4T_HEROKU_APPNAME_STAGE}
hp4t run ${HP4T_HEROKU_APPNAME_PRODUCTION} "npm run migrate-database"Please remember to use one tab indent in Makefile.
