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)