The public Travis API
Go to file
Piotr Sarnacki c6e3c29a57 Load the data for integration tests upfront
We can do it, because we use :transaction strategy with DatabaseCleaner,
which starts transaction before each test and rollbacks after it. That
way data before each test is consistent.

The big advantage of such approach is that tests are fast now - we need
to only load Scenario data once.

One of the drawbacks, on the other hand, is that we need to always load
this data, even if no integration tests need running.

We can try to be smart about it and check if any integration tests are
loaded.
2013-01-26 00:00:42 +01:00
config Use unicorn.rb config, sans prefork for now. 2012-12-05 18:19:23 +01:00
docs fix link to travis-web 2012-11-16 17:35:17 +01:00
lib/travis/api hotfix for strange bug 2013-01-25 22:13:33 +01:00
public/images/result moar work on acceptance tests 2012-10-02 19:10:29 +02:00
script Revert "go back to unicorn for now" 2013-01-23 21:05:36 +01:00
spec Load the data for integration tests upfront 2013-01-26 00:00:42 +01:00
.buildpacks Add last-commit-sha-buildpack 2012-11-25 23:48:39 +01:00
.gitignore Ignore log dir 2013-01-19 22:36:58 +01:00
.travis.yml Update .travis.yml 2012-10-11 15:51:47 -07:00
config.ru Revert "go back to unicorn for now" 2013-01-23 21:05:36 +01:00
Gemfile downgrade sinatra 2013-01-24 22:15:55 +01:00
Gemfile.lock downgrade sinatra 2013-01-24 22:15:55 +01:00
Procfile add console 2012-10-23 00:24:23 +02:00
Rakefile actually use gemspec 2012-08-05 14:42:05 +02:00
README.md update readme 2012-08-15 02:25:30 +02:00
travis-api.gemspec Update newrelic 2013-01-19 18:26:55 +01:00

The public Travis API

This is the app running on https://api.travis-ci.org/

Installation

Setup:

$ bundle install

Run tests:

$ RAILS_ENV=test rake db:create db:schema:load
$ rake spec

Run the server:

$ rake db:create db:schema:load
$ foreman start

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

API documentation

We use source code comments to add documentation. If the server is running, you can browse an HTML documenation at /docs.

Project architecture

lib
`-- travis
    `-- api
        `-- app
            |-- endpoint    # API endpoints
            |-- extensions  # Sinatra extensions
            |-- helpers     # Sinatra helpers
            `-- middleware  # Rack middleware

Classes inheriting from Endpoint or Middleware, they will automatically be set up properly.

Each endpoint class gets mapped to a prefix, which defaults to the snake-case class name (i.e. Travis::Api::App::Profile will map to /profile). It can be overridden by setting :prefix:

require 'travis/api/app'

class Travis::Api::App
  class MyRouts < Endpoint
    set :prefix, '/awesome'
  end
end