The public Travis API
Go to file
Tyranja a9c31fa5e9 Extract cancel and restart builds and jobs into sidekiq worker
See below for all the commit messages squashed into this one...
add a test

delete empty space

add job_cancellation worker

change id

change job_id param

add job restart worker

add require to sidekiq.rb

change params

add test for job restart and cancellation

add test for job restart

update build.rb improve build spec

update job restart with correct response, add test to chack for correct response when restarting job
2015-01-26 17:29:13 +01:00
bin Add an empty bin/start-nginx wrapper, to allow running Procfile locally 2013-11-05 12:28:13 +01:00
config Don't use nginx 2014-09-25 13:09:52 +02:00
lib Extract cancel and restart builds and jobs into sidekiq worker 2015-01-26 17:29:13 +01:00
public Use brightgreen color for passing builds. 2014-12-10 12:57:45 +01:00
script add repos stats script 2014-10-07 16:47:09 +02:00
spec Extract cancel and restart builds and jobs into sidekiq worker 2015-01-26 17:29:13 +01:00
tmp Add Skylight stuff 2014-04-09 02:57:34 -05:00
.buildpacks Don't use nginx 2014-09-25 13:09:52 +02:00
.gitignore refactor buildcancellation worker 2015-01-22 14:41:38 +01:00
.ruby-version use ruby 2.1.5 2015-01-13 18:57:32 +01:00
.travis.yml use ruby 2.1.5 2015-01-13 18:57:32 +01:00
config.ru Update travis-support to sans-newrelic version 2014-07-29 11:30:11 +02:00
CONTRIBUTING.md First cut generic Contributing.md file for Travis 2013-03-18 23:07:55 -03:00
Gemfile add Sidekiq for cancelling build 2015-01-23 14:43:54 +01:00
Gemfile.lock add Sidekiq for cancelling build 2015-01-23 14:43:54 +01:00
Procfile Extract cancel and restart builds and jobs into sidekiq worker 2015-01-26 17:29:13 +01:00
Rakefile try fixing db setup for travis 2014-10-07 16:48:21 +02:00
README.md Update README [skip ci] 2014-06-11 21:10:15 -04:00
travis-api.gemspec only run Skylight for 20% of the dynos (rounding up if there are less than five) 2015-01-19 14:00:00 +01:00

The public Travis API

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

Requirements

  1. PostgreSQL 9.3 or higher
  2. Redis
  3. RabbitMQ

Installation

Setup

$ bundle install

Database setup

  1. rake db:create db:structure:load
  2. Clone travis-logs and copy the logs database (assume the PostgreSQL user is postgres):
cd ..
git clone https://github.com/travis-ci/travis-logs.git
cd travis-logs
rvm jruby do bundle exec rake db:migrate # `travis-logs` requires JRuby
psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_development
pg_dump -t logs travis_logs_development | psql -U postgres travis_development

Repeat the database steps for RAILS_ENV=test.

RAILS_ENV=test rake db:create db:structure:load
pushd ../travis-logs
RAILS_ENV=test rvm jruby do bundle exec rake db:migrate
psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_test
pg_dump -t logs travis_logs_test | psql -U postgres travis_test
popd

Run tests

$ rake spec

Run the server

$ script/server

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