The public Travis API
Go to file
Joe Corcoran daf534edb7 Don't overwrite settings with defaults
Also changes the way the JSON fields are set to force ActiveRecord
to recognise the changes. Is there a better way?
2016-06-08 17:13:05 +02:00
bin set tmp_dir in script/server 2015-10-09 09:19:07 +02:00
config Signal Sciences support (#254) 2016-05-26 17:44:12 +02:00
lib Don't overwrite settings with defaults 2016-06-08 17:13:05 +02:00
public Use brightgreen color for passing builds. 2014-12-10 12:57:45 +01:00
script some changes to get errors to report to Sentry 2016-05-30 17:16:27 +02:00
spec Don't overwrite settings with defaults 2016-06-08 17:13:05 +02:00
tmp Add Skylight stuff 2014-04-09 02:57:34 -05:00
.buildpacks Signal Sciences support (#254) 2016-05-26 17:44:12 +02:00
.gitignore ignore my gemset 2016-05-30 15:31:19 +02:00
.rspec add .rspec for formatting, add new test (still broken) 2016-03-31 17:15:43 +02:00
.ruby-version use ruby 2.1.5 2015-01-13 18:57:32 +01:00
.travis.yml remove db:migrate 2016-02-11 10:26:24 +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 Use .ruby-version file instead of ruby statement in Gemfile 2016-06-02 19:22:16 +02:00
Gemfile.lock Add feature flag to enqueue restart build to Hub 2016-05-23 15:07:33 -05:00
LICENSE seems we don't have a license 2015-07-15 20:51:57 +02:00
Procfile add command to procfile 2016-04-28 15:15:57 +02:00
Rakefile update rakefile to allow heroku deployment, update create.rb with api builds rate limit 2016-03-31 16:54:12 +02:00
README.md Update README.md 2016-05-16 03:56:10 +02:00
travis-api.gemspec use the method directly 2016-05-30 17:26:44 +02:00

The public Travis API

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

Requirements

You will need the following packages to get travis-api to work:

  1. PostgreSQL 9.3 or higher
  2. Bundler
  3. Redis Server
  4. Optional: RabbitMQ Server
  5. Nginx - If working in Ubuntu please install nginx manually from source: Download and extract latest nginx version, open a terminal in extracted folder and then run the following:
    $ sudo apt-get install libpcre3 libpcre3-dev
    $ auto/configure --user=$USER
    $ make
    $ sudo make install
    $ sudo ln -s /usr/local/nginx/sbin/nginx /bin/nginx

Installation

Setup

$ bundle install

Database setup

You might need to create a role first. For this you should run the following:

$ sudo -u postgres psql -c "CREATE USER yourusername WITH SUPERUSER PASSWORD 'yourpassword'"

NB detail for how rake sets up the database can be found in the Rakefile. In the namespace :db block you will see the database name is configured using the environment variable RAILS_ENV. If you are using a different configuration you will have to make your own adjustments.

$ RAILS_ENV=development bundle exec rake db:create
$ RAILS_ENV=test bundle exec rake db:create

Optional

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

$ RAILS_ENV=test bundle exec rake db:create
$ 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

$ bundle exec rspec

Run the server

$ bundle exec script/server

If you have problems with Nginx because the websocket is already in use, try restarting your computer.

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 documentation at /docs.