<commit_before># Learn Travis [![Build Status](https://travis-ci.org/dwyl/learn-travis.svg?branch=master)](https://travis-ci.org/dwyl/learn-travis)  [![Dependencies](https://david-dm.org/dwyl/learn-travis.png?theme=shields.io)](https://david-dm.org/dwyl/learn-travis)


Our ***quick guide*** to **Travis CI** (*Continuous Integration*) for ***complete beginners***


![Toilet Roll Blocks Seat FAIL](https://raw.github.com/dwyl/learn-travis/master/images/Roll-Blocks-Toilet-Seat.jpg "Toilet Roll Blocks Seat from Closing. Fail!"")

**Test Early, Test Often** to spot "*integration issues*" *before its too late ...*

> Continuous integration is a software development process  
> in which **all development work** is **integrated** at a predefined time  
> or event and the resulting ***work is automatically tested and built***.  
> The idea is that **development errors** are **identified** very ***early*** in the process.

If you are *completely* new to Continuous Integration (CI)
I recommend reading the
[CI Wikipedia Article](http://en.wikipedia.org/wiki/Continuous_integration)
and Martin Fowler's [Article on CI](http://www.martinfowler.com/articles/continuousIntegration.html).
<br />
**Note**: Both of these are quite *text-heavy* but contain all the info you need. Read them! If you have any questions, *ask*!

The key advantages of Travis:

- Nothing to *Install* (Cloud Based ... *Not Java*!)
- **Free** Both to *Use* and **Open Source** (MIT License) see: http://about.travis-ci.org/
- Integrates nicely with GitHub (without any developer effort!)

I've used [Jenkins/Hudson CI](http://jenkins-ci.org) in the past
@groupon, but found the learning curve a bit steep for
*new developers*. Travis by contrast has a much *shallower learning curve*!

### Getting Started

Following the [Travis Getting Started](http://about.travis-ci.org/docs/user/getting-started/) guide:

> Visit: https://travis-ci.org/ and click "**Sign in with GitHub**" no "*registration*" required.
<commit_msg>re-org readme into Why? What? How? sections<commit_after># Learn Travis [![Build Status](https://travis-ci.org/dwyl/learn-travis.svg?branch=master)](https://travis-ci.org/dwyl/learn-travis)  [![Dependencies](https://david-dm.org/dwyl/learn-travis.png?theme=shields.io)](https://david-dm.org/dwyl/learn-travis)


Our ***quick guide*** to **Travis CI** (*Continuous Integration*) for ***complete beginners***

## *Why*?

Testing your work (*to be* ***sure*** *its working as expected*)
is the most important part of a project.

![Toilet Roll Blocks Seat FAIL](https://raw.github.com/dwyl/learn-travis/master/images/Roll-Blocks-Toilet-Seat.jpg "Toilet Roll Blocks Seat from Closing. Fail!"")

> ***CI*** helps you **Test Early, Test Often** to spot "*integration issues*" *before its too late ...*  
> **Travis CI** takes the *hassle* out of running your own CI so you can focus on your project/product!


## *What*?

> **C**ontinuous **I**ntegration is a software development process  
> in which **all development work** is **integrated** at a predefined time  
> or event and the resulting ***work is automatically tested and built***.  
> The idea is that **development errors** are **identified** very ***early*** in the process.

If you are ***completely new*** to Continuous Integration (CI) we ***recommend reading***  
the [**CI Wikipedia Article**](http://en.wikipedia.org/wiki/Continuous_integration)
and Martin Fowler's
[Article on CI](http://www.martinfowler.com/articles/continuousIntegration.html).
<br />
**Note**: Both of these are quite *text-heavy* but contain all the info you need.  
Read them! If you have any questions, *ask*!  [![Join the chat at https://gitter.im/dwyl/chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dwyl/chat/)

### *Key Advantages* of Travis:

- **Nothing to** ***Install*** (*Travis Web-Based* ... ***Not*** *a* ***heavy Java*** *Application you have to host yourself*<sup>1</sup>)
- **Free** Both to *Use* and **Open Source** (MIT License) see: http://about.travis-ci.org/
- **Integrates** nicely with **GitHub** (*without any developer effort*!)


<sup>1</sup>We've used [Jenkins CI](http://jenkins-ci.org) in the past for *client* projects,  
but **Jenkins** has a
[***steep learning curve***](http://shop.oreilly.com/product/0636920010326.do)
for *new developers*.  
**Travis** *by contrast* has a much ***shallow learning curve***!

## *How*?

This tutorial will take you **20 minutes** and will ***save you hours***
of frustration! #**NoBrainer**

### Pre-requisites?

+ A computer with node.js installed

If you don't have these, see:

### Getting Started

Following the [Travis Getting Started](http://about.travis-ci.org/docs/user/getting-started/) guide:

> Visit: https://travis-ci.org/ and click "**Sign in with GitHub**" no "*registration*" required.

{'fraction_non_alphanumeric': 0.16500622665006226, 'fraction_numerical': 0.00394354503943545, 'mean_word_length': 4.820048309178744, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 21, 'https://': 15, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1232534', 'n_tokens_mistral': 1568, 'n_tokens_neox': 1494, 'n_words': 500}