An experimental Heroku CLI plugin for continuous delivery on Heroku.
This plugin is used to set up a simple pipeline of apps where the latest release of one app can be promoted to the next app downstream. The promotion only copies the upstream build artifact and leaves the downstream app's config vars, add-ons, and Git repo untouched. An app can only have one downstream app, but there is no limit to the length of the pipeline or the number of upstream apps.
An example of a simple pipeline where developers push to a staging app and later promote the slug to production:
$ cd deep-thought-1234-staging $ heroku pipeline:add deep-thought-1234 Added downstream app: deep-thought-1234 $ heroku pipeline Pipeline: deep-thought-1234-staging ---> deep-thought-1234 $ git commit -m "A super important fix" $ git push heroku master ... $ heroku pipeline:diff Comparing deep-thought-1234-staging to deep-thought-1234...done, deep-thought-1234-staging ahead by 1 commit: 73ab415 2012-01-01 A super important fix (Joe Developer) $ heroku pipeline:promote Promoting deep-thought-1234-staging to deep-thought-1234...done, v2 $ heroku releases --app deep-thought-1234 === deep-thought-1234 Releases v2 Promote deep-thought-1234-staging v6 0f0a53b firstname.lastname@example.org 1m ago v1 Initial release email@example.com 2m ago
$ heroku plugins:install firstname.lastname@example.org:heroku/heroku-pipeline.git
heroku pipelinedisplay info about the app pipeline
heroku pipeline:add DOWNSTREAM_APPadd a downstream app to this app
heroku pipeline:removeremove the downstream app of this app
heroku pipeline:diffcompare the commits of this app to its downstream app
heroku pipeline:promotepromote the latest release of this app to its downstream app
heroku rollback is a standard
heroku command that allows you to rollback when something goes wrong. Its
behavior is the same when using pipelines. Use it anytime you need to revert a pipeline promotion.