-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (50 loc) · 1.84 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
### HELPERS ###
BOLD := $(shell tput bold)
SGR0 := $(shell tput sgr0)
define MSG
printf '${BOLD}=> $(subst ",,$(strip $(1)))$(SGR0)\n'
endef
### DEVELOPMENT ###
local.dirs:
@mkdir -p ./log && mkdir -p ./tmp
local.up: local.dirs
@$(call MSG, "Running local development environment")
docker-compose -f docker-compose.yml up --build --detach
local.setup: local.dirs local.database
local.database: local.database.development local.database.test
local.database.development:
@$(call MSG, "Setting up [development] database")
docker-compose -f docker-compose.yml exec \
--env DATABASE_URL=postgresql://postgres:postgres@db/api_quequeo_development app \
bundle exec rake db:drop db:create db:migrate db:seed
local.database.test:
@$(call MSG, "Setting up [test] database")
docker-compose -f docker-compose.yml exec \
--env DATABASE_URL=postgresql://postgres:postgres@db/api_quequeo_test app \
bundle exec rake db:drop db:create db:migrate
local.shell:
@$(call MSG, "Starting [development] shell")
docker-compose -f docker-compose.yml exec app sh
local.logs:
@$(call MSG, "Showing [development] logs")
docker-compose -f docker-compose.yml logs -f app
local.down:
@$(call MSG, "Stopping local development environment")
docker-compose -f docker-compose.yml down
local.clean:
@$(call MSG, "Cleaning local development environment")
docker-compose -f docker-compose.yml rm --force --stop
docker-compose -f docker-compose.yml down --volumes --remove-orphans
local.test:
@$(call MSG, "Running [test] suite")
docker-compose -f docker-compose.yml exec app make test.run SPEC=${SPEC}
local.recycle: local.recycle.shell
local.recycle.shell:
@$(call MSG, "Recycling [development] shell")
@make local.down
@make local.up local.setup
@make local.shell
### UNIT TESTS ###
# Unit test runner for local development environment
test.run:
bundle exec rspec $(SPEC)