Merge pull request #247 from HPI-BP2015H/readme_update

Readme update
This commit is contained in:
Konstantin Haase 2016-04-11 15:51:05 +02:00
commit 72c204883f

View File

@ -4,52 +4,68 @@ This is the app running on https://api.travis-ci.org/
## Requirements ## Requirements
You will need the following packages to get travis-api to work:
1. PostgreSQL 9.3 or higher 1. PostgreSQL 9.3 or higher
1. Redis 2. Bundler
1. RabbitMQ 3. Redis Server
1. Nginx *NB: If working on Ubuntu please install Nginx manually from source. [This guide](http://www.rackspace.com/knowledge_center/article/ubuntu-and-debian-installing-nginx-from-source) is helpful but make sure you install the [latest stable version](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#stable), include the user name on your ubuntu machine when compiling (add `--user=[yourusername]` as an option when running `./configure`), and don't follow any subsequent server configuration steps. Travis-api will start and configure its own nginx server when run locally. 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:*
```sh-session
$ 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 ## Installation
### Setup ### Setup
```sh-session
$ bundle install $ bundle install
```
### Database setup ### Database setup
*You might need to create a role first. For this you should run the following:*
```sh-session
$ 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. 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.
1. `bundle exec rake db:create`
2. for testing 'RAILS_ENV=test bundle exec rake db:create --trace'
1. Clone `travis-logs` and copy the `logs` database (assume the PostgreSQL user is `postgres`):
```sh-session ```sh-session
cd .. $ RAILS_ENV=development bundle exec rake db:create
git clone https://github.com/travis-ci/travis-logs.git $ RAILS_ENV=test bundle exec rake db:create
cd travis-logs ```
rvm jruby do bundle exec rake db:migrate # `travis-logs` requires JRuby #### Optional
psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_development Clone `travis-logs` and copy the `logs` database (assume the PostgreSQL user is `postgres`):
pg_dump -t logs travis_logs_development | psql -U postgres travis_development ```sh-session
$ 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
``` ```
Repeat the database steps for `RAILS_ENV=test`.
```sh-session
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 ### Run tests
```sh-session
$ bundle exec spec $ bundle exec rspec
```
### Run the server ### Run the server
```sh-session
$ bundle exec script/server $ bundle exec script/server
```
If you have problems with Nginx because the websocket is already in use, try restarting your computer. If you have problems with Nginx because the websocket is already in use, try restarting your computer.
## Contributing ## Contributing