Thursday 20th June, 2013
2:30pm to 3:15pm
Open source projects live off the fact that developers turn into contributors and invest their precious time into creating patches, bug fixes and or enhanced functionality for an Open Source code base.
As a maintainer of an Open Source project there's significant effort involved in correctly handling these contributions. Reviewing patches from contributors, ensuring the patches completeness (coding style issues and test coverage) are equally as important as running the patched code against the test suite before it’s acceptance. Nobody wants to destabilize the usability of the code base or jeopardize the projects success or momentum, right?!
=Let The Internet Work For You!=
We all love Github for their free code hosting and streamlined collaboration experience. Let's introduce two more players to the table to complete the stack:
Travis, the Continuous Integration Service
Sauce Labs, Selenium Cloud Service
Github hosts a lot of the Open Source code which is crucial to the productivity of a Web Developer, however there is a lot more than hosting needed (test execution, static analysis, linting etc) to ensure the hosted code's quality. Travis CI is our friend. The guys at Travis provide a continuous integration service for the open source community free of charge to handle exactly this. In addition to the awesome integration with Github, it'll check out the latest code and let us perform any given task we can think of, eg. kicking off a test runner for our unit tests or performing static analysis across the code base.
To keep up with outside contributions to one’s open source project -- it’s quite helpful to have a continuous build not just for the stable trunk of the project but also for contributing pull requests. Travis and Github came up with a nice solution to this problem -- they kick off builds in Travis-CI whenever a pull request was created and will make information about the build status available through the pull request management user interface.
=Let’s Connect The Dots=
We’ll be using a Github hosted example project to illustrate end-to-end integrated test execution. In order to make all these free services work together we’ll need to write a thin layer of code to glue them all together. Enter node.js and grunt.js: Grunt.js is to node.js what GNU Make is to GCC. It’ll let you perform repetitive tasks in an elegant way, using a set of common and or hand-crafted build tasks.
=How Does This Benefit Me As A Maintainer?=
I’ll show how Github, Travis-CI and Sauce Labs, can integrate build success / failure reporting into the collaboration workflow on Github to notify maintainers ahead of time about problems which may have gotten introduced with a code contribution.
largest fish at @saucelabs. passionate powder eater. cultivating german lifestyle in lovely san francisco. usually busy collecting parking tickets. bio from Twitter
Sign in to add slides, notes or videos to this session