36
SHOW AN OPEN SOURCE PROJECT SOME LOVE AND START USING TRAVIS-CI Joel Byler @joelbyler January 10, 2014 CodeMash 2.0.1.4 Kalihari Resort Sandusky, OH JJ Sunday, January 12, 14

Show an Open Source Project Some Love and Start Using Travis-CI

Embed Size (px)

DESCRIPTION

Lots of us are looking for an open source project to help with, but sometimes it is hard to find a way to contribute. I'd like to recommend that folks start to consider using Travis-CI and adding Travis-CI scripts to projects that don't already have them. Lets look at what it takes to build a project using Travis and the benefits that a project can take advantage of if they use the service. This was originally presented at CodeMash v2.0.1.4 in Sandusky, Ohio on January 10, 2014

Citation preview

Page 1: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 2: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 3: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 4: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 5: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 6: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 7: Show an Open Source Project Some Love and Start Using Travis-CI

TRAVIS-CI

Hosted Free for open-source projects Supports MANY Languages Can run against multiple

runtime versions MOAR!

Sunday, January 12, 14

Page 8: Show an Open Source Project Some Love and Start Using Travis-CI

WHAT PEOPLE ARE SAYINGYou don’t have to take my word for it.

Sunday, January 12, 14

Page 9: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 10: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 11: Show an Open Source Project Some Love and Start Using Travis-CI

LANGUAGESTest all the things!

Sunday, January 12, 14

Page 12: Show an Open Source Project Some Love and Start Using Travis-CI

WORKS FOR YOUR LANGUAGE(PROBABLY)CC++CLOJUREERLANGGOGROOVYHASKELLJAVA

JAVASCRIPT (WITH NODE.JS)

OBJECTIVE-CPERLPHPPYTHONRUBYSCALA

Sunday, January 12, 14

Page 13: Show an Open Source Project Some Love and Start Using Travis-CI

RUBY.travis.yml

Super simple!

Sunday, January 12, 14

Page 14: Show an Open Source Project Some Love and Start Using Travis-CI

COMPLEX BUILD

Sunday, January 12, 14

Page 15: Show an Open Source Project Some Love and Start Using Travis-CI

JAVA.travis.yml

Sunday, January 12, 14

Page 16: Show an Open Source Project Some Love and Start Using Travis-CI

JAVASCRIPTtravis.yml

Sunday, January 12, 14

Page 17: Show an Open Source Project Some Love and Start Using Travis-CI

THE BUILD IS PASSING!badges for your website

Sunday, January 12, 14

Page 18: Show an Open Source Project Some Love and Start Using Travis-CI

DEMOhttps://github.com/joelbyler/roman_numeral.js

travis gem travis login & travis init

notifications travis-lint gem for validation

Sunday, January 12, 14

Page 20: Show an Open Source Project Some Love and Start Using Travis-CI

Sunday, January 12, 14

Page 21: Show an Open Source Project Some Love and Start Using Travis-CI

Sunday, January 12, 14

Page 22: Show an Open Source Project Some Love and Start Using Travis-CI

PULL REQUESTSKnow that merging a pull request won’t break the build.

Sunday, January 12, 14

Page 23: Show an Open Source Project Some Love and Start Using Travis-CI

THE BUILD IS PASSING!

Sunday, January 12, 14

Page 24: Show an Open Source Project Some Love and Start Using Travis-CI

AUTO DEPLOYMENTWhy start trusting a human now?

Sunday, January 12, 14

Page 25: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 26: Show an Open Source Project Some Love and Start Using Travis-CI

DEPLOY YOUR CHANGES TO:

HerokuNodejitsuEngine YardOpenShiftcloudControlRubyGemsPyPINPM

Sunday, January 12, 14

Page 27: Show an Open Source Project Some Love and Start Using Travis-CI

A RUBY EXAMPLE, DEPLOY TO RUBYGEMS.ORG

Sunday, January 12, 14

Page 28: Show an Open Source Project Some Love and Start Using Travis-CI

A NODE EXAMPLE, DEPLOY TO NPMJS.ORG

Sunday, January 12, 14

Page 29: Show an Open Source Project Some Love and Start Using Travis-CI

ADVANCED FEATURES parallelized builds (unit vs int. tests) databases GUI & Headless browser testing

Sunday, January 12, 14

Page 30: Show an Open Source Project Some Love and Start Using Travis-CI

PRIVATE REPOSITORIES Not a sharer?

Sunday, January 12, 14

Page 31: Show an Open Source Project Some Love and Start Using Travis-CI

PRICING

as of 1/9/2014

Sunday, January 12, 14

Page 32: Show an Open Source Project Some Love and Start Using Travis-CI

ALTERNATIVES drone.io (free for open source) werker.com (free beta) circleci.com cisimple.com tddium.com

Sunday, January 12, 14

Page 33: Show an Open Source Project Some Love and Start Using Travis-CI

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

Page 34: Show an Open Source Project Some Love and Start Using Travis-CI

RESOURCES CONTINUEDCode Coveragehttps://coveralls.io/

Dependencieshttps://gemnasium.com/

Version Badgehttp://badge.fury.io/

Quality Analysishttps://codeclimate.com/

Sunday, January 12, 14

Page 35: Show an Open Source Project Some Love and Start Using Travis-CI

THAT’S A WRAP!

Joel Byler@joelbyler

Sunday, January 12, 14

Page 36: Show an Open Source Project Some Love and Start Using Travis-CI

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