@rob_rich

Continuous Integration
in JavaScript

by Rob Richardson

@rob_rich

http://robrich.org/

March 12, 2014

About Me

Rob Richardson is a local software craftsman building web properties in ASP.NET and Node. He's a frequent speaker at user groups and community events, and a diligent teacher and student of high quality software development. You can find this and other talks on his blog at http://robrich.org/presentations and follow him on twitter at @rob_rich.

Continuous Integration is
part of a larger vision

"The goal is to get
from backlog to customer faster"
-me ... right now

Larger vision


Continuous Deployment
Team Continuous Integration Deployment

Continuous Integration

What?

A software development practice:
  • Integrate frequently
  • Verified by automated build

Benefits:
  • Detect errors as quickly as possible
  • Reduce integration problems
  • Develop more rapidly

- Martin Fowler

http://martinfowler.com/articles/continuousIntegration.html

Why?

  • Detect errors faster
  • Consistency
  • Automation yields speed

How?

  • In a neutral environment
  • Start from scratch each time
  • Do the same process in the same order

Who?

User Use case
Developers fail faster
DevOps deploy / maintain
Stake Holders wallboard
Customers features

Types of Builds

  • Verification (tests)
  • Package for deployment
  • Facilitate developer productivity

The 6 Build steps

  • Clean
  • Get source
    • source code repository
    • sensitive information store
    • machine configuration
  • Version
  • Build
  • Test
  • Deploy

Why JavaScript?

  • JavaScript is coming of age
  • Classically trained developers moving to JavaScript
  • Principles of Software Craftsmanship

Why Now?

  • JavaScript tooling is much easier
  • Think about Rhino and Node

Tools of the Trade

Demo:
Travis-CI

Travis CI

  • create .travis.yml file
  • set scripts/test command in package.json
  • sign in through github
  • enable project
  • view status on GitHub
  • win!

Demo:
gulp

gulp

Questions?

@rob_rich

http://robrich.org/