The public Travis API
Go to file
Tyranja 057e9f0379 add Sidekiq for cancelling build
:
add require sidekiq to the sidekiq.rb

update Gemfile.lock

bump travis-sidekiqs

correct require statement

fix another request

connect to the database

add current user

add current user correctly

add current user correctly

add puts to see were in the condition we are

missing invertted comma

add comments to the worker

I HAVE NO IDEA

Revert "I HAVE NO IDEA"

This reverts commit 8bd1259bf4ea1b479f9391847a4700b7b15efe57.

change the id and source to symbols in the params because siedekiq expects that

add more printout

setup database connection, metrics and notification

correct the test
2015-01-23 14:43:54 +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 add Sidekiq for cancelling build 2015-01-23 14:43:54 +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 add Sidekiq for cancelling build 2015-01-23 14:43:54 +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 add sidekiq worker, update endpoint 2015-01-21 17:09:24 +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