All Projects → eduardoboucas → Haiku

eduardoboucas / Haiku

🚀 Instant Heroku deploys from GitHub branches

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Haiku

Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+1176.47%)
Mutual labels:  heroku, ci, continuous-integration, continuous-delivery, continuous-deployment
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (+1358.82%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+900%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (+117.65%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
Orkestra
Functional DevOps with Scala and Kubernetes
Stars: ✭ 102 (+500%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
Build
Netlify Build runs the build command, Build Plugins and bundles Netlify Functions.
Stars: ✭ 135 (+694.12%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
ofcourse
A Concourse resource generator
Stars: ✭ 41 (+141.18%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
Pipelines
Build pipelines for automation, deployment, testing...
Stars: ✭ 105 (+517.65%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
www.go.cd
Github pages repo
Stars: ✭ 39 (+129.41%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
Abstruse
Abstruse is a free and open-source CI/CD platform that tests your models and code.
Stars: ✭ 704 (+4041.18%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
Gocd
Main repository for GoCD - Continuous Delivery server
Stars: ✭ 6,314 (+37041.18%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
flagsmith-nodejs-client
Flagsmith Node JS Client. Flagsmith lets you manage features flags across web, mobile and server side applications. Get builds out faster. Control who has access to new features.
Stars: ✭ 13 (-23.53%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (+52.94%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
swarmci
Swarm CI - Docker Swarm-based CI system or enhancement to existing systems.
Stars: ✭ 48 (+182.35%)
Mutual labels:  continuous-integration, continuous-delivery, ci, continuous-deployment
Bzppx Codepub
暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.
Stars: ✭ 471 (+2670.59%)
Mutual labels:  ci, continuous-integration, continuous-delivery, continuous-deployment
Ccmenu
CCMenu is a Mac application to monitor continuous integration servers.
Stars: ✭ 306 (+1700%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Serverless Plugin Canary Deployments
Canary deployments for your Serverless application
Stars: ✭ 283 (+1564.71%)
Mutual labels:  continuous-integration, continuous-delivery, continuous-deployment
Drone
Drone is a Container-Native, Continuous Delivery Platform
Stars: ✭ 24,287 (+142764.71%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Lambdacd
a library to define a continuous delivery pipeline in code
Stars: ✭ 655 (+3752.94%)
Mutual labels:  ci, continuous-integration, continuous-delivery
Alloy ci
Continuous Integration, Deployment, and Delivery coordinator, written in Elixir.
Stars: ✭ 274 (+1511.76%)
Mutual labels:  ci, continuous-integration, continuous-deployment

Haiku

Deploy

Haiku is a small Node.js app that watches a branch on your GitHub repository and deploys every pull request to a new Heroku application. You will get a URL that represents a snapshot of the state of your project as per the contents of the pull request, useful to test or to share features with colleagues/clients before rolling out to production.

Screencast

https://www.youtube.com/watch?v=8OpbVUqkqec

How it works

  1. When a new pull request is created, a new Heroku app is created programatically and it's built using the state of the branch being merged

  2. The URL of the app will be added to the pull request once it finishes building

  3. Every new commit to the branch while the pull request is open will rebuild the app

  4. When the pull request is merged or closed the app will be destroyed

Pre-requisites

Before getting started, you'll need:

Installation

  1. Clone this repository and install the dependencies
git clone https://github.com/eduardoboucas/haiku.git
cd haiku
npm install
  1. Edit the configuration parameters

  2. Add a webhook to the GitHub repository by going to its Settings page and going to Webhooks > Add webhook.

  • Payload URL: The URL where Haiku will live
  • Content type: application/json
  • Secret: The secret you added to the configuration
  • Select Let me select individual events. and choose only pull_request
  1. Start the app
npm start

Configuration

Configuration parameters can be set using either a JSON config file, named config.{ENVIRONMENT}.json (where {ENVIRONMENT} is replaced by the environment running the app), or by environment variables.

Config file property Environment variable Description Default
env NODE_ENV The application environment development
port PORT The port to bind the application to
githubApiToken GITHUB_API_TOKEN Access token to the GitHub API
herokuApiToken HEROKU_API_TOKEN Access token to the Heroku Platform API
webhookEndpoint WEBHOOK_ENDPOINT Endpoint used to handle webhook requests /webhook
webhookSecret GITHUB_WEBHOOK_SECRET Secret to decode webhook requests with
pullRequest.branch PR_BRANCH Name of the branch to watch for PRs master
buildpack BUILDPACK_URL URL of the Heroku buildpack to use

Colophon

A traditional Japanese haiku is a three-line poem with seventeen syllables, written in a 5/7/5 syllable count. It is also in the origin of the name Heroku. The logo was designed by Claudio Gomboli of The Noun Project.

License

Copyright 2017 Eduardo Bouças

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].