The public Travis API
Go to file
Joe Corcoran 316947b7c0 Add simplest log endpoint
Just an excuse to get all the boilerplate classes in place :)
2016-07-19 18:10:34 +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 Add simplest log endpoint 2016-07-19 18:10:34 +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 Add simplest log endpoint 2016-07-19 18:10:34 +02:00
spec_core update rack-attack to 5.0.0.beta1, use safelist/blocklist terminology 2016-07-05 12:58:58 +02:00
tmp Add Skylight stuff 2014-04-09 02:57:34 -05:00
vendor/travis-core update rack-attack to 5.0.0.beta1, use safelist/blocklist terminology 2016-07-05 12:58:58 +02:00
.buildpacks Signal Sciences support (#254) 2016-05-26 17:44:12 +02:00
.gitignore Add simplest log endpoint 2016-07-19 18:10:34 +02:00
.rspec get rid of spec_helper_core 2016-06-19 14:35:54 +02:00
.ruby-version Copies spec from core 2016-06-14 15:10:40 +02:00
.travis.yml wrong ruby in travis file 2016-06-14 15:17:20 +02: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 Merge branch 'master' into jc-v3-env-vars 2016-07-05 11:44:28 -04:00
Gemfile.lock fix the tests 2016-07-05 13:36:31 -04: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 delete github/find_or_create[org|repo|user] services 2016-06-20 11:26:47 +02:00
README.md run both tests 2016-06-14 15:11:58 +02:00
travis-api.gemspec delete github/services/sync_user and user_mailer, remove action_mailer 2016-06-19 15:04:39 +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 rake

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.