commit
6c2fefa2bf
6 changed files with 26 additions and 9 deletions
|
@ -2,6 +2,7 @@
|
||||||
.idea
|
.idea
|
||||||
.sass-cache
|
.sass-cache
|
||||||
log
|
log
|
||||||
|
config/database.yml
|
||||||
public/assets
|
public/assets
|
||||||
public/system
|
public/system
|
||||||
tmp/*
|
tmp/*
|
||||||
|
|
11
bin/test
11
bin/test
|
@ -1,12 +1,17 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Set test variables
|
# We use TEST_DATABASE_URL to make sure we don't accidentaly overwrite dev/prod db
|
||||||
export DATABASE_URL=mysql2://root:secret@mysql/test
|
unset DATABASE_URL; export DATABASE_URL
|
||||||
|
[ "$TEST_DATABASE_URL" ] && export DATABASE_URL="$TEST_DATABASE_URL"
|
||||||
export RAILS_ENV=test
|
export RAILS_ENV=test
|
||||||
|
|
||||||
# Start virtuals X environment to allow integration testing via firefox/iceweasel
|
# Start virtuals X environment to allow integration testing via firefox/iceweasel
|
||||||
export DISPLAY=:99
|
export DISPLAY=:99
|
||||||
Xvfb :99 &
|
Xvfb $DISPLAY -nolisten tcp &
|
||||||
|
XVFB_PID=$!
|
||||||
|
|
||||||
# Start tests
|
# Start tests
|
||||||
rspec
|
rspec
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
kill $XVFB_PID
|
||||||
|
|
|
@ -5,6 +5,10 @@ Gratulations, if you read this file locally, you have successfully cloned the
|
||||||
foodsoft project from the git repository. Now you are only a few steps away
|
foodsoft project from the git repository. Now you are only a few steps away
|
||||||
from trying it out and then jumping into development.
|
from trying it out and then jumping into development.
|
||||||
|
|
||||||
|
This document describes how to setup Foodsoft for development on your local system.
|
||||||
|
Alternatively, you [run Foodsoft using Docker](SETUP_DOCKER.md).
|
||||||
|
|
||||||
|
|
||||||
**System requirements**:
|
**System requirements**:
|
||||||
[RVM](https://rvm.io/rvm/install),
|
[RVM](https://rvm.io/rvm/install),
|
||||||
[Ruby 1.9.3+](https://www.ruby-lang.org/en/downloads/),
|
[Ruby 1.9.3+](https://www.ruby-lang.org/en/downloads/),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Foodsoft on Docker
|
# Foodsoft on Docker
|
||||||
|
|
||||||
This document explains setup and using docker the foodsoft with docker.
|
This document explains setting up and using Foodsoft with Docker.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
@ -23,9 +23,6 @@ to be pulled from docker registry and a lot dependencies needs to be installed.)
|
||||||
|
|
||||||
docker-compose run app rake foodsoft:setup_development
|
docker-compose run app rake foodsoft:setup_development
|
||||||
|
|
||||||
TODO: Right know this is not gonna work because of the new database
|
|
||||||
configuration via ENV variable. See Notes below.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Start containers (in foreground, stop them with `CTRL-C`)
|
Start containers (in foreground, stop them with `CTRL-C`)
|
||||||
|
@ -40,6 +37,10 @@ Open a rails console
|
||||||
|
|
||||||
docker-compose run app rails c
|
docker-compose run app rails c
|
||||||
|
|
||||||
|
Setup the test database
|
||||||
|
|
||||||
|
docker-compose run app rake db:setup RAILS_ENV=test DATABASE_URL=mysql2://root:secret@mysql/test
|
||||||
|
|
||||||
Run the tests
|
Run the tests
|
||||||
|
|
||||||
docker-compose run app ./bin/test
|
docker-compose run app ./bin/test
|
||||||
|
@ -64,5 +65,5 @@ docker commit -m "Updated rails" <Container ID> foodsoft_app
|
||||||
|
|
||||||
### Database configuration
|
### Database configuration
|
||||||
|
|
||||||
TO make thins easier we use the ENV Variable DATABASE_URL. But to make this
|
To make this easier we use the environment variable `DATABASE_URL`
|
||||||
work, the shouldn't be any config/database.yml file!
|
(and `TEST_DATABASE_URL` when using the testing script).
|
|
@ -13,6 +13,7 @@ app: &app
|
||||||
- DATABASE_URL=mysql2://root:secret@mysql/development
|
- DATABASE_URL=mysql2://root:secret@mysql/development
|
||||||
- REDIS_URL=redis://redis:6379
|
- REDIS_URL=redis://redis:6379
|
||||||
- QUEUE=foodsoft_notifier
|
- QUEUE=foodsoft_notifier
|
||||||
|
- TEST_DATABASE_URL=mysql2://root:secret@mysql/test
|
||||||
|
|
||||||
resque:
|
resque:
|
||||||
<<: *app
|
<<: *app
|
||||||
|
|
|
@ -58,6 +58,10 @@ end
|
||||||
|
|
||||||
def setup_database
|
def setup_database
|
||||||
file = 'config/database.yml'
|
file = 'config/database.yml'
|
||||||
|
if ENV['DATABASE_URL']
|
||||||
|
puts blue "DATABASE_URL found, please remember to also set it when running Foodsoft"
|
||||||
|
return nil
|
||||||
|
end
|
||||||
return nil if skip?(file)
|
return nil if skip?(file)
|
||||||
|
|
||||||
database = ask("What kind of database do you use?\nOptions:\n(1) MySQL\n(2) SQLite", ["1","2"])
|
database = ask("What kind of database do you use?\nOptions:\n(1) MySQL\n(2) SQLite", ["1","2"])
|
||||||
|
@ -110,6 +114,7 @@ def setup_secret_token
|
||||||
end
|
end
|
||||||
|
|
||||||
def start_mailcatcher
|
def start_mailcatcher
|
||||||
|
return nil if ENV['MAILCATCHER_PORT'] # skip when it has an existing Docker container
|
||||||
mailcatcher = ask("Do you want to start mailcatcher?\nOptions:\n(y) Yes\n(n) No", ["y","n"])
|
mailcatcher = ask("Do you want to start mailcatcher?\nOptions:\n(y) Yes\n(n) No", ["y","n"])
|
||||||
if mailcatcher === "y"
|
if mailcatcher === "y"
|
||||||
puts yellow "Starting mailcatcher at http://localhost:1080..."
|
puts yellow "Starting mailcatcher at http://localhost:1080..."
|
||||||
|
|
Loading…
Reference in a new issue