• Home
  • Pubget.com
  • Pubget for iPad
  • Contact

Nov
29th
2011

Text
Pubget’s Automated Builds

As a small team, we don’t have the luxury of dedicated release engineers and thus need to automate our build as much as possible. To do this we use git branches, CruiseControl.rb and some nifty shell scripts to keep new code flowing. Coupled with the automation, we also have a weekly build master rotation where one member of the dev team shields the rest from tracking down build failures.

Ok, a picture is worth a thousand words so here’s our code flow (everything green is automated):

Developers will typically workout out of the DEVELOPMENT branch so this is where new code begins flowing through the system. We find that it’s good practice to link submissions to GitHub issues for management & deploy tracking. The changes then get pulled intoSTAGING which is the continuous build branch for automated testing. We like CruiseControl.rb because it’s light weight & low maintenance. If tests fail, the build master is notified and he can track down the right person to fix the failing test in staging. Once the build is green, the qualified code gets pushed to MASTER which is the production branch behind pubget.com. Since the master branch is considered the healthiest, it feeds down into development and any other project branches that may exist. At this point every branch now has that latest code change and the process begins again.

Too many words? Here’s the short flow:
  1. devs submit to development
  2. changes are tested in staging
  3. qualified changes get pushed to master
  4. development & special project branches stay close to shore through master
It’s definitely worth mentioning that when test failures happen in staging, the automation pauses. Nothing is pulled from development into staging and nothing is pushed from staging into master. This ensures that only healthy code makes its way into production and only the developer that broke the build needs to fix staging. Other developers can continue merging changes into development knowing they will be tested once staging is working again.

This process has helped in a bunch of ways:
  • developers submit code and trust that it will be qualified, deployed & propagated to all branches
  • developers stay productive even when the build is broken
  • we have a production branch where we can quickly apply a hotfix if needed

  • Posted 1 year ago
Pubget solves the problem of full-text document access in life science research. Instead of search results linking to papers, with Pubget’s proprietary technology, the search results are the papers. Once you find the papers you want, you can save, manage and share them.
Follow me
Search
  • RSS
  • Random
  • Archive
  • Mobile
Tumblr Themes   by Templatemela