-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
120 lines (100 loc) · 3.03 KB
/
Copy pathMakefile
File metadata and controls
120 lines (100 loc) · 3.03 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
.SILENT:
.PHONY: build test
## Colors
COLOR_RESET = \033[0m
COLOR_INFO = \033[32m
COLOR_COMMENT = \033[33m
## Help
help:
printf "${COLOR_COMMENT}Usage:${COLOR_RESET}\n"
printf " make [target]\n\n"
printf "${COLOR_COMMENT}Available targets:${COLOR_RESET}\n"
awk '/^[a-zA-Z\-\_0-9\.@]+:/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = substr($$1, 0, index($$1, ":")); \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf " ${COLOR_INFO}%-16s${COLOR_RESET} %s\n", helpCommand, helpMessage; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
###############
# Environment #
###############
## Setup environment & Install & Build application
setup:
if [ -d "./var/cache" ]; then rm -rf ./var/cache; fi;
if [ -d "./var/logs" ]; then rm -rf ./var/logs; fi;
if [ -d "./var/sessions" ]; then rm -rf ./var/sessions; fi;
vagrant up --no-provision
vagrant provision
vagrant ssh -- "cd /srv/app && make install && make build"
## Update environment
update: export ANSIBLE_TAGS = manala.update
update:
vagrant provision
## Update ansible
update-ansible: export ANSIBLE_TAGS = manala.update
update-ansible:
vagrant provision --provision-with ansible
## Provision environment
provision: export ANSIBLE_EXTRA_VARS = {"manala":{"update":false}}
provision:
vagrant provision --provision-with app
## Provision nginx
provision-nginx: export ANSIBLE_TAGS = manala_nginx
provision-nginx: provision
## Provision php
provision-php: export ANSIBLE_TAGS = manala_php
provision-php: provision
###########
# Install #
###########
## Install application
install:
composer install --verbose
bin/console doctrine:database:create --if-not-exists
install@test: export SYMFONY_ENV = test
install@test:
# Composer
composer install --verbose --no-progress --no-interaction
# Doctrine
bin/console doctrine:database:drop --force --if-exists
bin/console doctrine:database:create --if-not-exists
bin/console doctrine:schema:update --force
install@demo: export SYMFONY_ENV = prod
install@demo:
# Composer
composer install --verbose --no-progress --no-interaction --prefer-dist --optimize-autoloader
# Symfony cache
bin/console cache:warmup --no-debug
# Doctrine migrations
bin/console doctrine:migrations:migrate --no-debug --no-interaction
install@prod: export SYMFONY_ENV = prod
install@prod:
# Composer
composer install --verbose --no-progress --no-interaction --prefer-dist --optimize-autoloader --no-dev
# Symfony cache
bin/console cache:warmup --no-debug
# Doctrine migrations
bin/console doctrine:migrations:migrate --no-debug --no-interaction
##########
# Build #
##########
build:
if [ -f "gulpfile" ]; then gulp --dev; fi;
build@demo:
if [ -f "gulpfile" ]; then gulp; fi;
build@prod:
if [ -f "gulpfile" ]; then gulp; fi;
##########
# Deploy #
##########
## Deploy application
deploy@demo:
ansible-playbook ansible/deploy.yml --inventory-file=ansible/hosts --limit=deploy_demo
deploy@prod:
ansible-playbook ansible/deploy.yml --inventory-file=ansible/hosts --limit=deploy_prod
##########
# Custom #
##########