travis-cookbooks

travis-hub

travis-hub collects events from
other apps and notifies other apps about the events. For example, it notifies
travis-tasks about builds starting and finishing so
notifications can be sent out.

travis-hub is also responsible for enqueueing jobs that have been created and
enforcing the Quality of Service restrictions, such as the number of concurrent
builds per user.

travis-listener

travis-listener receives
notifications from GitHub whenever commits are pushed or pull requests are
opened. They are then pushed onto RabbitMQ for other apps to process.

travis-logs

travis-logs receives log updates
from travis-worker, saves them to the database and pushes
them to the web client. When a job is finished, travis-logs is
responsible for pushing the log to Amazon S3 for archiving.

travis-support

travis-support holds shared
logic for the different Travis CI apps. It is different from travis-core in
that it holds more generic things, like how to run an async job or how to
handle exceptions.

travis-tasks

travis-tasks receives
notifications from travis-hub and sends out notifications to the
different notification providers as needed.