Wallogit.com
2017 © Pedro Peláez
Create application and configure pipeline on Heroku., (*1)
To initiate project follow commands:, (*2)
npm install herokupipelines4travis lodash --save-dev $(npm bin)/hp4t setup
Package _lodash is optional - install it if you want to use it in infrastructure/._, (*3)
You can edit files:, (*4)
.travis.yml - Travis CI configuration fileinfrastructure/ - directory with infrastructure configuration
base.js - base configurationstage.js - stage environment configurationproduction.js - production environment configurationFor simplify usage you should define:, (*5)
alias hp4t="$(npm bin)/hp4t"
hp4t setup - initialise projecthp4t export app_name [heroku_api_key] - export existing Heroku application configrationhp4t 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.travis.yml, (*6)
---
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-rollbar
Makefile, (*7)
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., (*8)