Skip to content

A distributed build system for the open source community.

License

Notifications You must be signed in to change notification settings

bilalaslam/travis-ci

 
 

Repository files navigation

Travis CI

What is Travis CI?

Travis CI is a distributed build system for the open source community.

See It In Action

You can see Travis CI in action at travis-ci.org. At about 1 year in operation, we have some prominent open source projects trusting travis-ci.org to run their continuous integration:

Goals

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

  • Allows open source projects to effortlessly register their GitHub repository and have their test suites run after pushes
  • Allows users to contribute build capacity by connecting a machine that runs Travis workers and the virtual machines they use on their underused servers.

With Travis CI our vision is to become for builds (i.e. tests, for starters) what services like rubygems.org or Maven Central are for distribution of libraries.

We strive to build a rock-solid, but dead easy to use, open source continuous integration service for the open source community.

We Are Not Done Yet

Please note that this is a work in progress. We have only reached our #1 goal so far. We try to follow the 80/20 rule for requirements, i.e., we focus on the most common use cases.

Travis CI is not currently a good fit for closed in-house installations. It's made up of multiple applications which evolve rapidly. We are working on providing a way to install a closed in-house installation, but we have no ETA for this at the moment. Please get in touch at [email protected] for more information.

Get In Touch!

User Documentation

We care about our documentation and make sure our [documentation guides] (https://about.travis-ci.org/docs/) are clearly written and up to date. Please make sure you read them. Two key guides are:

and we also have technology-specific guides:

Technical Overview

Travis consists of several parts:

  • An Ember.js-based single-page application that runs client side.
  • A Rails 3 application that serves to the in-browser application and takes pings from Github.
  • A JRuby and AMQP powered worker for running a project's test suite in snapshotted virtual machines.
  • A websocket server (we use Pusher) for tailing build results to the browser.
  • A JRuby-based AMQP daemon that collects build reports, workers state, propagates them to Pusher, delivers notifications and so on.
  • Chef cookbooks that are used to provision the [Travis CI environment] (https://about.travis-ci.org/docs/user/ci-environment/) (to provide databases, RabbitMQ, Rubies/JDK/Node.js versions and so on) and tools that build VM images.

All these applications, tools and libraries are hosted under the Travis CI organization on GitHub.

A more detailed overview is available in our [Technical Overview guide] (https://bit.ly/travisci-technical-overview) aimed at developers.

Developer Documentation

Please keep in mind that Travis CI evolves rapidly and developer documentation may be outdated. (Pull requests are welcome.) Development, [travis-ci.org] (https://travis-ci.org) maintenance, and user documentation take priority.

What Is This Repository?

This repository contains the old Rails app that used to serve [travis-ci.org] travis-ci. Everything has now been extracted to different repositories, and this repository is only being used as a global issue tracker and to run migrations against the database.

Contribute

Want to contribute to Travis CI? Great! We realise that the documentation for contributors isn't the best at the time, but feel free to ask us questions on the mailing list or in IRC. A good place to start would be the technical overview and then feading the CONTRIBUTING file for the repository you're contributing to.

History

Design Iterations

Other sources

About

A distributed build system for the open source community.

Resources

License

Stars

Watchers

Forks

Packages

No packages published