scinote-web/Makefile

106 lines
3.2 KiB
Makefile
Raw Normal View History

2016-02-12 23:52:43 +08:00
APP_HOME="/usr/src/app"
DB_IP=$(shell docker inspect scinote_db_development | grep "\"IPAddress\": " | awk '{ match($$0, /"IPAddress": "([0-9\.]*)",/, a); print a[1] }')
PAPERCLIP_HASH_SECRET=$(shell openssl rand -base64 128 | tr -d '\n')
2016-02-12 23:52:43 +08:00
define PRODUCTION_CONFIG_BODY
SECRET_KEY_BASE=$(shell openssl rand -hex 64)
PAPERCLIP_HASH_SECRET=$(shell openssl rand -base64 128 | tr -d '\n')
DATABASE_URL=postgresql://postgres@db/scinote_production
PAPERCLIP_STORAGE=filesystem
ENABLE_RECAPTCHA=false
ENABLE_USER_CONFIRMATION=false
ENABLE_USER_REGISTRATION=true
DEFACE_ENABLED=false
endef
export PRODUCTION_CONFIG_BODY
2016-02-12 23:52:43 +08:00
all: docker database
heroku:
@heroku buildpacks:remove https://github.com/ddollar/heroku-buildpack-multi.git
@heroku buildpacks:set https://github.com/ddollar/heroku-buildpack-multi.git
@echo "Set environment variables, DATABASE_URL, RAILS_SERVE_STATIC_FILES, RAKE_ENV, RAILS_ENV, SECRET_KEY_BASE"
2016-02-12 23:52:43 +08:00
docker:
@docker-compose build
docker-production:
@docker-compose -f docker-compose.production.yml build
config-production:
ifeq (production.env,$(wildcard production.env))
$(error File production.env already exists!)
endif
@echo "$$PRODUCTION_CONFIG_BODY" > production.env ;
2016-02-12 23:52:43 +08:00
db-cli:
@$(MAKE) rails cmd="rails db"
2016-07-21 19:11:15 +08:00
db-load-dump:
@$(MAKE) rails cmd="rake db:drop db:create;pg_restore --verbose --clean --no-acl --no-owner -h $(DB_IP) -p 5432 -U postgres -d scinote_development latest.dump"
2016-02-12 23:52:43 +08:00
database:
@$(MAKE) rails cmd="rake db:create db:setup db:migrate"
database-production:
@$(MAKE) rails-production cmd="bash -c 'while ! nc -z db 5432; do sleep 1; done; rake db:create && rake db:migrate && rake db:seed'"
deface:
@$(MAKE) rails cmd="rake deface:precompile"
2016-02-12 23:52:43 +08:00
rails:
@docker-compose run --rm web $(cmd)
rails-production:
@docker-compose -f docker-compose.production.yml run --rm web $(cmd)
2016-02-12 23:52:43 +08:00
run:
2016-07-21 19:11:15 +08:00
rm tmp/pids/server.pid || true
@docker-compose up -d
@docker attach scinote_web_development
2016-02-12 23:52:43 +08:00
start:
@docker-compose start
stop:
@docker-compose stop
2016-11-19 22:26:16 +08:00
worker:
2017-08-23 23:10:45 +08:00
@$(MAKE) rails cmd="rake jobs:work export WORKER=1"
2016-11-19 22:26:16 +08:00
2016-02-12 23:52:43 +08:00
cli:
@$(MAKE) rails cmd="/bin/bash"
cli-production:
@$(MAKE) rails-production cmd="/bin/bash"
unit-tests:
@$(MAKE) rails cmd="bundle exec rspec"
integration-tests:
@$(MAKE) rails cmd="bundle exec cucumber"
tests-ci:
2018-04-04 21:29:20 +08:00
@docker-compose run --rm web bash -c "bundle install && npm install"
@docker-compose up -d webpack
@docker-compose ps
@docker-compose run -e ENABLE_EMAIL_CONFIRMATIONS=false -e MAILER_PORT=$MAILER_PORT -e SMTP_DOMAIN=$SMTP_DOMAIN -e SMTP_USERNAME=$SMTP_USERNAME -e SMTP_PASSWORD=$SMTP_PASSWORD -e SMTP_ADDRESS=$SMTP_ADDRESS -e PAPERCLIP_HASH_SECRET=PAPERCLIP_HASH_SECRET -e MAIL_SERVER_URL=localhost -e PAPERCLIP_STORAGE=filesystem -e -e ENABLE_RECAPTCHA=false -e ENABLE_USER_CONFIRMATION=false -e ENABLE_USER_REGISTRATION=true --rm web bash -c "rake db:create db:migrate && rake db:migrate RAILS_ENV=test && npm install && bundle exec rspec && bundle exec cucumber"
2016-02-12 23:52:43 +08:00
console:
@$(MAKE) rails cmd="rails console"
console-production:
@$(MAKE) rails-production cmd="rails console"
2016-02-12 23:52:43 +08:00
log:
@docker-compose web log
status:
@docker-compose ps
export:
@git checkout-index -a -f --prefix=scinote/
@tar -zcvf scinote-$(shell git rev-parse --short HEAD).tar.gz scinote
@rm -rf scinote