Just started using an incredible product. If you want to sync GitHub with your live server using SFTP look no further @deploybutton— Ulrich Pogson (@grapplerulrich) May 10, 2013
@deploybutton AMAZING! Really looking forward to trying that when it’s ready ;)— Josh Baker (@joshuabaker) November 29, 2012
The following blog post is by Niall O’Higgins. Niall is an author and software developer. He wrote the book MongoDB and Python for O’Reilly and is also the developer of Strider, an open source continuous deployment platform. Twitter: @niallohiggins
I went to the Voxer Node.JS hardware hack event over the weekend. Attendees were given access to Arduinos, bread boards and tons of sensors, LEDs, shields etc to build cool stuff. Some folks had existing projects (CNC machines, coffee roasters) which they brought and hacked on, while others such as myself brainstormed fun stuff.
Knowledgable hardware hackers were on hand to give advice, teach about electronics, and generally help out.
I had never done anything with Arduino before and so this was a great learning opportunity to see what is possible. I was very impressed by the Node.JS libraries people have developed. Johnny Five in particular was very easy to get up and running with.
My goal was to hook up an arcade button and two LEDs for status (one red, one green). When you press the deploy button, my laptop should kick off a deploy to Heroku and blink the red LED to indicate deploy-in-progress. Based on ultimate success or failure of the Heroku deploy, a green or red LED should then light solid.
Here is a photo of the device: https://raw.github.com/niallo/arduino-deploybutton/master/deploybuttonbig.png
You can see the full source to my app here: https://github.com/niallo/arduino-deploybutton/—— DeployButton team:
Pretty cool work, Niall! We’re excited about builders in the Open source, arduino, and hardware hobbyist community creating awesome little hacks like this to improve continuous delivery for people… and maybe even make it a little fun. If you have a project that you’d like us to highlight, pass it on and we’d love to share it.w
Since we started DeployButton about a month ago now, we’ve received tons of requests for supporting deploys with Atlassian BitBucket. For the uninitiated, BitBucket supports both Git and Mercurial Source code management tools.
While we here at DeployButton and Lizi/Labs tend to use Git and Github, Bitbucket has some nice advantages to it. Currently, it has support for unlimited private repositories, which many small groups of developers take advantage of.
We’ve received many requests from our users to add Github post commit hooks (and this is one of the ways that we’re using DeployButton to deploy our own projects). We’re proud to be part of the “continuous deployment” movement that’s changing software development in startups and agile enterprises all over.
So without further ado, here are some instructions. This information is also located on the DeployButton wiki, available here.
Add a Github Postcommit Hook
What are webhooks?
Webhooks were created to allow web applications to become more extensible, customizable, and ultimately more useful. Webhooks let you develop “instant” push notifications. A push notification is simply a HTTP POST, that is triggered by some action. In this case, the action is checking into a particular branch of your source code repository over at Github. In order to set webhooks for your repository, you need to be the owner (**administrator**) of the repository. Please check and make sure you are the admin on your repository before sending us a support ticket.
- From your DeployButton Project page, click on “Integrations”:
- Copy the URL provided in the modal box.
- Visit the repository you’re trying to set up deploy hooks for in Github or your source code versioning tool.
- From the left hand sidebar menu, select “Service Hooks”.
- From the Available Service hooks, choose “Webhook URLs”
- Enter the correct Webhook URL from your DeployButton page.
We (@ashbhoopathy, @railsjedi, and @richlengsavath) won both the Public Favorite and 3rd place in this year’s Rails Rumble. We are flattered and honored by the outpouring of community support for our simple idea.
When we started building DeployButton, we wanted to scratch our own itch and solve for our own needs. This summer, our team at Lizi decided that we needed a less expensive web host for our site(s). Like many of you, we’re a fast moving consumer web team that likes to iterate and put lots of new things out to “Build”, “Measure”, and “Learn” to validate that we’re making something people want™.
Jacques, aka “@railsjedi”, created a really sweet system to power our continuous deployment, using Github, Linode, and Opscode Chef. I’ll save the more technical post for later, but for the layperson, this essentially means that as soon as someone has committed working code into a master branch of a source code repository, it automatically gets deployed to the server, and the whole team is notified.
Our team relies on a few tools for group communication, one of them being Hipchat. Hipchat allows for deploy hooks that can notify us when different things happen, like code being checked in, and deploys starting/completing. This is a great way for the team to 1) stay abreast of what’s going on with the code base, and 2) know which “application state” users are looking at in the event that an error occurs (Errors also have http hooks that notify us in the chat).
Little did we know, but the night that we finished and submitted our final version to the RailsRumble repo, we got to the front page of HackerNews. Soon thereafter, we had over 15K visitors come to our site, and over 6K who’ve used the product already! We knew then that our product had struck a nerve and might fulfill a need for a wide assortment of people: independent Wordpress builders, small-midsized web consulting shops, to weekend hobbyist Rails devs.
Over the next few months, we’ll be improving DeployButton to have many creature comforts that we’d want to see in a product like this, since we need it anyway.
Follow along in our progress here, @DeployButton, and tweet to tell us how you use continuous deployment at your startups and enterprises.
Oh, and if this is still “cool” to do, Like us on Facebook and we’ll let you know first about beta releases to our product :-)