Skip to content

Commit

Permalink
add contents section for Continuous Delivery (CD) and intro to topic …
Browse files Browse the repository at this point in the history
…with links for #42
  • Loading branch information
nelsonic committed May 25, 2018
1 parent cc90cb7 commit e206cd6
Showing 1 changed file with 53 additions and 15 deletions.
68 changes: 53 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@

[![Build Status](https://travis-ci.org/dwyl/learn-travis.svg?branch=master)](https://travis-ci.org/dwyl/learn-travis)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/learn-travis/issues)
[![HitCount](http://hits.dwyl.io/dwyl/learn-travis.svg)](http://hits.dwyl.io/dwyl/learn-travis)
<!-- [![HitCount](http://hits.dwyl.io/dwyl/learn-travis.svg)](http://hits.dwyl.io/dwyl/learn-travis) -->

</div>

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

## Index

Expand All @@ -34,14 +35,14 @@ Our ***quick guide*** to **Travis CI** (*Continuous Integration*) for ***complet
1. [Include Environment Variables in your `.travis.yml` file](#environment-variables-travis.yml)
2. [Add environment Variables in the Web Interface](#environment-variables-web-interface)
3. [Secure (Encrypted) Environment Variables](#environment-variables-secured)
5. [Elm Lang](#elm-lang)
6. [Elixir](#elixir-lang)
7. [Install Travis-CLI on Ubuntu](#install-travis-cli-on-ubuntu)
8. [Going further](#going-further)
6. [**Continuous _Delivery_**](#continuous-delivery)
7. [Elm Lang](#elm-lang)
8. [Elixir](#elixir-lang)
9. [Install Travis-CLI on Ubuntu](#install-travis-cli-on-ubuntu)
10. [Going further](#going-further)
1. [General CI Background Reading](#general-ci)
2. [Travis Specific](#travis-specific)
3. [Competitors](#competitors)
9. [TODO](#todo)

<a name="why"></a>
## Why?
Expand All @@ -51,32 +52,39 @@ is the most important part of a project.

![Toilet Roll Blocks Seat FAIL](https://user-images.githubusercontent.com/194400/28815447-5458823c-7699-11e7-8c65-bcf9e4569388.png "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!
> ***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!

<a name="what"></a>
## 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.
> The idea is that **development errors** are **identified**
_very **early**_ in the process.

![Continuous Integration Diagram](https://cloud.githubusercontent.com/assets/1128312/20186823/ddfdbb9e-a771-11e6-9e99-4720e7b60f53.png)

If you are ***completely new*** to Continuous Integration (CI) we ***recommend reading***
the [**CI Wikipedia Article**](http://en.wikipedia.org/wiki/Continuous_integration)
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).

**Note**: Both of these are quite *text-heavy* but contain all the info you need.
**Note**: Both of these are quite *text-heavy*
but contain all the info you need.
Read them! If you have any questions,
[*ask*!](https://github.com/dwyl/learn-travis/issues)

<a name="key-advantages"></a>
### *Key Advantages* of Travis-CI:

- **Nothing to** ***Install*** (Travis is Web-Based, ***Not*** *a* ***heavy Java*** *Application you have to host yourself*<sup>1</sup>)
- **Nothing to** ***Install*** (Travis is 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*!)

Expand Down Expand Up @@ -362,6 +370,35 @@ Type `yes` to confirm you are your project, you should now see your encrypted va
Paste this in your `.travis.yml` file, commit and push it to GitHub!


<a name="continuous-delivery"></a>
## Continuous _Delivery_ 🚀

Continuous delivery (CD) is a software engineering approach
in which teams produce software in short cycles,
ensuring that the software can be reliably released at any time.
It aims at building, testing, and releasing software
with greater speed and frequency.
The approach helps reduce the cost, time, and risk of delivering changes
by allowing for more incremental updates to applications in production.
A straightforward and repeatable **deployment process**
is important for continuous delivery. <br />
https://en.wikipedia.org/wiki/Continuous_delivery

Travis-CI can help with the **deployment process**
and there are _many_ tools you can use to deploy your App(s)
to a wide variety of "Cloud Infrastructure" or "Platform" providers.

> _**Note**: we consider this an "**advanced**" topic.
If you have not yet used Heroku (with GitHub hooks)
we **highly recommend** that you use that approach **first**
see:_ https://github.com/dwyl/learn-heroku <br />
_Once your App has "traction" and you have "outgrown Heroku"
(or your "Product Owner / Client" does no "allow" you to use Heroku)
return to this topic and our "**DevOps**" tutorial:_
https://github.com/dwyl/learn-devops



<a name="elm-lang"></a>
## Elm-lang Project

Expand Down Expand Up @@ -460,10 +497,11 @@ which will improve your understanding about CI overall, Travis and other tools t
- circle-ci: https://circleci.com/, [learn-circleci](https://github.com/dwyl/learn-circleci)
- codeship: https://codeship.com/, [learn-codeship](https://github.com/dwyl/learn-codeship)


<!--
<a name="todo"></a>
## TODO

- **ALL** The Diagrams on Google Image Search for Continuous Integration are terrible!
https://www.google.com/search?q=continuous+integration&source=lnms&tbm=isch
*we* either need to make time to draw one or ask/commission someone to do one for us!
-->

0 comments on commit e206cd6

Please sign in to comment.