![]() We used last-commit-sha-buildpack in order to fetch the sha of the last deployed commit during building the app and save it to use it later. This was done using undocumented Heroku properties, for example it assumed a certain path to git files. It turns out that there's another way to do it now. We can enable dyno-metadata[1] feature on heroku and use HEROKU_SLUG_COMMIT [1] https://devcenter.heroku.com/articles/dyno-metadata |
||
---|---|---|
bin | ||
config | ||
lib | ||
public | ||
script | ||
spec | ||
tmp | ||
.buildpacks | ||
.gitignore | ||
.rspec | ||
.ruby-version | ||
.travis.yml | ||
config.ru | ||
CONTRIBUTING.md | ||
Gemfile | ||
Gemfile.lock | ||
heroku-buildpack-sigsci.tgz | ||
LICENSE | ||
Procfile | ||
Rakefile | ||
README.md | ||
sigsci-buildpack-nginx.tgz | ||
travis-api.gemspec |
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:
- PostgreSQL 9.3 or higher
- Bundler
- Redis Server
- Optional: RabbitMQ Server
- 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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
API documentation
v3 documentation can be found at https://developer.travis-ci.org which is a repository that can be found at https://github.com/travis-pro/developer