Show an Open Source Project Some Love and Start Using Travis-CI
Post on 01-Nov-2014
619 Views
Preview:
DESCRIPTION
Transcript
SHOW AN OPEN SOURCE PROJECT SOME LOVE AND START USING TRAVIS-CI
Joel Byler@joelbyler
January 10, 2014CodeMash 2.0.1.4Kalihari ResortSandusky, OH
JJ
Sunday, January 12, 14
WHO AM I? JOEL BYLER
Aspiring Software Craftsman Organizer for Cleveland Ruby
Brigade (aka CleRb) Enterprise Java developer Actively growing my Ruby and
JavaScript skills
Sunday, January 12, 14
WHO ARE YOU?
Want to get involved in an Open Source Project?
Currently maintaining an Open Source Project and interested in your CI options?
Sunday, January 12, 14
COMMON PROBLEMS WHEN SHARING SOURCE CODE Work’s on my machine syndrome Didn’t realize I need to test on that
version of ruby/node/etc. Pull requests - how do I know if
this will break the build? Would love run tests on commit,
but don’t have $$$ for equipment.
Sunday, January 12, 14
CONTINUOUS INTEGRATION...is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day.
~Wikipedia
...is a software development practice where members of a team integrate their work frequently
~Martin Fowler
Sunday, January 12, 14
CONTINUOUS INTEGRATION CONTD. Once the code is built, all tests should run to confirm that it behaves as the developers expect it to behave.
~Wikipedia
...verified by an automated build (including test) to detect integration errors as quickly as possible...
~Martin Fowler
Sunday, January 12, 14
TRAVIS-CI
Hosted Free for open-source projects Supports MANY Languages Can run against multiple
runtime versions MOAR!
Sunday, January 12, 14
WHAT PEOPLE ARE SAYINGYou don’t have to take my word for it.
Sunday, January 12, 14
QUOTESWhat Github did for sharing code, Travis CI will do for testing code
- Brian Ford, Rubinius, @brixen
I'm sure there was life before @travisci, but I choose to ignore it.
- Jeff Casimir, Jumpstart Lab/Hungry Academy @j3
I have used many CI systems, but Travis is the most awesome one so far!!
- Aslak Hellesoy, THE Cucumber Guy, @aslak_hellesoy
Sunday, January 12, 14
TRAVIS BUILD LIFE-CYCLEAny of the following steps will fail build when finishing with a non-zero exit code-clone github repository-cd to new directory-before_install:-install:-before_script:-script:==== build will not fail past this step ====-after_success:-after_failure:-after_script:
prepare the systeminstall prerequisites or dependencies
prepare your build for testingspecific to project language
Sunday, January 12, 14
LANGUAGESTest all the things!
Sunday, January 12, 14
WORKS FOR YOUR LANGUAGE(PROBABLY)CC++CLOJUREERLANGGOGROOVYHASKELLJAVA
JAVASCRIPT (WITH NODE.JS)
OBJECTIVE-CPERLPHPPYTHONRUBYSCALA
Sunday, January 12, 14
RUBY.travis.yml
Super simple!
Sunday, January 12, 14
COMPLEX BUILD
Sunday, January 12, 14
JAVA.travis.yml
Sunday, January 12, 14
JAVASCRIPTtravis.yml
Sunday, January 12, 14
THE BUILD IS PASSING!badges for your website
Sunday, January 12, 14
DEMOhttps://github.com/joelbyler/roman_numeral.js
travis gem travis login & travis init
notifications travis-lint gem for validation
Sunday, January 12, 14
DEMOhttps://github.com/joelbyler/roman_numeral.js/blob/master/media/Travis-CI.mov?raw=true
Sunday, January 12, 14
Sunday, January 12, 14
Sunday, January 12, 14
PULL REQUESTSKnow that merging a pull request won’t break the build.
Sunday, January 12, 14
THE BUILD IS PASSING!
Sunday, January 12, 14
AUTO DEPLOYMENTWhy start trusting a human now?
Sunday, January 12, 14
CONTINUOUS DEPLOYMENTIn the same vein the practice of continuous delivery further extends CI by making sure the software checked in on the mainline is always in a state that can be deployed to users and makes the actual deployment process very rapid.
~Wikipedia
A natural consequence of this is that you should also have scripts that allow you to deploy into production with similar ease.
~Martin Fowler
Sunday, January 12, 14
DEPLOY YOUR CHANGES TO:
HerokuNodejitsuEngine YardOpenShiftcloudControlRubyGemsPyPINPM
Sunday, January 12, 14
A RUBY EXAMPLE, DEPLOY TO RUBYGEMS.ORG
Sunday, January 12, 14
A NODE EXAMPLE, DEPLOY TO NPMJS.ORG
Sunday, January 12, 14
ADVANCED FEATURES parallelized builds (unit vs int. tests) databases GUI & Headless browser testing
Sunday, January 12, 14
PRIVATE REPOSITORIES Not a sharer?
Sunday, January 12, 14
PRICING
as of 1/9/2014
Sunday, January 12, 14
ALTERNATIVES drone.io (free for open source) werker.com (free beta) circleci.com cisimple.com tddium.com
Sunday, January 12, 14
RESOURCESTravis-CIhttps://travis-ci.org/
Travis-CI Bloghttp://about.travis-ci.org/blog/
Travis-CI Sourcehttps://github.com/travis-ci
Continuous Integration, by Martin Fowlerhttp://www.martinfowler.com/articles/continuousIntegration.html
Sunday, January 12, 14
RESOURCES CONTINUEDCode Coveragehttps://coveralls.io/
Dependencieshttps://gemnasium.com/
Version Badgehttp://badge.fury.io/
Quality Analysishttps://codeclimate.com/
Sunday, January 12, 14
THAT’S A WRAP!
Joel Byler@joelbyler
Sunday, January 12, 14
COME FLOAT WITH US!Located on a 10,000 square foot boat on the Cleveland waterfront, our team exemplifies how Agile values & principles are practiced. Come float, deliver, and learn with us, or leverage our expertise to help you change your company culture.
@leandog leandog.com
GDI
Sunday, January 12, 14
top related