Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A distributed build system for the open source community.
JavaScript Ruby CoffeeScript Shell
Branch: webkit
Pull request Compare This branch is 1677 commits ahead, 3603 commits behind travis-ci:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
db
docs
lib
log
markup
play
public
resources
script
spec
.gitignore
.rspec
.slugignore
.travis.yml
CHANGELOG.textile
Gemfile
Gemfile.lock
LICENSE
Procfile
README.textile
Rakefile
TODO.textile
config.ru

README.textile

Travis – a distributed build system

Travis is an attempt to create an open-source, distributed build system for the Ruby community that:

1. allows open-source projects to register their repository and have their test-suites run on demand
2. allows users to contribute build capacities by connecting a VM that runs a build agent somewhere on their underused servers

Contact

User Documentation

Developer Documentation

Other sources

Overview

Travis consists of four main parts:

  • A Backbone.js single-page application that runs client side.
  • A Rails 3 application that serves to the in-browser application and takes pings from Github.
  • A Resque worker for running a project’s test suite remotely.
  • A websocket server (we use Pusher) for tailing build results to the browser.

You can also watch this (quite old, but still valid) screencast to get an idea: 1:20 quick demo screencast

Goals

With Travis CI our vision is to become for builds (i.e. tests, for starters) what rubygems.org is for gems.

Our goal is to build a rock solid, but dead-easy to use open-source continuous integration service for the Ruby community.

We try to follow the 80/20 for requirements. I.e. we focus on the most common use cases for testing Ruby Gems.

Travis CI does not currently support closed in-house installations, although we know of people working on this. Ask on the IRC channel for more information.

Running the tests

Integration tests are implemented using Jasmine and can be run in the browser:

$ RAILS_ENV=jasmine rake db:migrate db:seed
$ rails s thin -e jasmine
$ open http://localhost:3000

To run the whole test suite simply do:

$ rake spec

Design Iterations

First spike

My first spike was using Nanite for running workers.

Requirements

  • Ruby 1.8.7 or Ruby 1.9.2 (Ruby 1.9.1 is not supported)
  • PostgreSQL for the pg gem
Something went wrong with that request. Please try again.