OhlohUI
Dependencies:
- OhlohUI uses the ruby version 2.5.3. Please install ruby '> 2.5'.
- OhlohUI uses the postgresql database. Please install postgresql and create a new user on it.
Getting Started:
$ git clone git@github.com:blackducksoftware/ohloh-ui.git
$ cd ohloh-ui
$ gem install bundler
$ bundle install
The OhlohUI data is split between two databases in production. The development setup needs to reflect the same. The database names are configured in a file specific to each environment. For development, create a file env.development, with the following contents.
DB_ENCODING = 'UTF-8'
DB_HOST = localhost
DB_NAME =
DB_USERNAME =
DB_PASSWORD =
FOREIGN_DB_HOST = localhost
FOREIGN_DB_NAME =
FOREIGN_DB_USERNAME =
FOREIGN_DB_PASSWORD =
The default DB encoding was set to SQL_ASCII to support data encoded by older ruby. For new data, the UTF-8 encoding should work fine. The *_USERNAME and *_PASSWORD entries need to reflect the user created in postgresql. The *DB_NAME entries should be new database names. These will be created during our setup.
$ rake db:create
$ rake db:structure:load
$ rake db:second_base:structure:load
This might throw a bunch of errors about relations and constraints already existing. Please ignore them and proceed.
Setup a default admin user. The arguments are optional. By default a user with the login admin_user, password admin_password and email admin@example.com will be created.
$ ruby script/setup_default_admin.rb <login> <passsword> <email>
$ rails s
Visit localhost:3000 to checkout the site.
Tests:
Add the following to the .env.development file. Fill in the blank values appropriately. Modify .env.test to reflect the values that were added here.
TEST_DB_HOST = localhost
TEST_DB_NAME =
TEST_DB_USERNAME =
TEST_DB_PASSWORD =
FOREIGN_TEST_DB_HOST = localhost
FOREIGN_TEST_DB_NAME =
FOREIGN_TEST_DB_USERNAME =
FOREIGN_TEST_DB_PASSWORD =
Then run the following:
$ rake db:test:prepare
$ rake test
Integration Tests:
The following packages need to be installed to make the feature specs work:
Mac OSX
$ brew install brew-cask
$ brew cask install google-chrome
$ brew install chromedriver
Ubuntu 18.04
$ sudo apt-get install chromium-browser
$ sudo apt-get install chromium-chromedriver
$ sudo ln -s /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver
Recording/fixing VCR cassettes for Fisbot API:
Define an alias for vcr.localhost.org in /etc/hosts
:
127.0.0.1 vcrlocalhost.org
Start the fisbot server(test environment) at localhost:4004. Manually clean the fisbot tables after each recording.
Pull Request Builder:
The OhlohUI CI uses the following task to verify PR compatibility.
$ rake ci:all_tasks
This runs:
- rubocop
- haml-lint
- brakeman
- bundle audit
- teaspoon
- rake test
- spinach