Top Banner
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
36

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

Nov 01, 2014

Download

Technology

Joel Byler

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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