-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
119 lines (97 loc) · 5.53 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
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
pi.PHONY: help
SHELL := /bin/bash
so := $(shell uname -s)
ifeq ($(so), Darwin)
export PATH := "/usr/local/opt/openssl/bin:$(PATH)"
export LDFLAGS := "-L/usr/local/opt/openssl/lib"
export CPPFLAGS := "-I/usr/local/opt/openssl/include"
endif
# target: help - Display callable targets.
help:
@egrep "^# target:" [Mm]akefile
# target: clean - Remove all ".pyc" files
clean:
find ./ -name '*.pyc' -print0|xargs -0 rm
find ./ -name '*.pyo' -print0|xargs -0 rm
rm -f ./logs/*
rm -f .coverage
rm -fr ./htmlcov
rm -fr ./pytest_cache
rm -fr ./__pycache__/
rm -fr ./staticfiles/
# target: install-test - Config test
install-test:
rsync -auv ./doc/environment/_test.env test.env
@echo -e "\n\n#####################################################"
@echo "Adicione configurações em test.env"
@echo "Adicione o arquivo .freeipa_chave.pem para acesso ao FreeIPA"
@echo "#####################################################"
# target: install-dev - Install VirtualEnv e Libs
install-dev:
python3 -m venv ../env
../env/bin/pip install --upgrade pip
../env/bin/pip install -r ./doc/requirements/requirements.txt
../env/bin/pip install -r ./doc/requirements/requirements-dev.txt
../env/bin/pip install -r ./doc/requirements/requirements-test.txt
rsync -auv ./doc/environment/_dev.env dev.env
@echo -e "\n\n#####################################################"
@echo "Adicione configurações em dev.env"
@echo "Adicione o arquivo .freeipa_chave.pem para acesso ao FreeIPA"
@echo -e "\n#####################################################"
@echo "make start-dev -> Para criar os serviços"
@echo "make mysql-migrate -> Para Criar o Banco de dados"
@echo "make loaddata -> adicionar valores iniciais nos banco de dados"
@echo "make init -> criar usuário admin"
@echo "#####################################################"
# target: install-prod - Config test
install-prod:
rsync -auv ./doc/environment/_prod.env prod.env
@echo -e "\n\n#####################################################"
@echo "Adicione configurações em prod.env"
@echo "Adicione o arquivo .freeipa_chave.pem para acesso ao FreeIPA"
@echo "Adicione a variável no ambiente - django_settings_module=portal.settings.development
@echo "#####################################################"
# target: start-test - start for test
start-test:
docker-compose -f ./docker/docker-compose_test.yml -p test_portal --project-directory $(shell pwd) up -d
docker exec -it test_django-celery pytest --cov=. --cov-report term
rm -f ./logs/*
rm -f .coverage
rm -fr ./pytest_cacheclear
rm -fr ./__pycache__/
docker rm -f test_django-celery test_redis
# target: start-dev - start for development
start-dev:
export django_settings_module=portal.settings.development
docker-compose -f ./docker/docker-compose_development.yml -p dev_portal --project-directory $(shell pwd) up -d
# target: start-prod - start for oper
start-prod:
export django_settings_module=portal.settings.production
docker-compose -f ./docker/docker-compose_production.yml -p prod_portal --project-directory $(shell pwd) up -d
# target: test-dev - start test in dev
test-dev:
../env/bin/pytest -v --cov=. --cov-report html
# target: dumpdata - dump data for database
dumpdata:
../env/bin/python ./manage.py dumpdata core.grupotrabalho core.grupoacesso infra.rede infra.hostnameip infra.rack infra.equipamento infra.equipamentogrupoacesso infra.storage infra.storagearea infra.storageareagrupotrabalho infra.supercomputador infra.servidor infra.servidorhostnameip infra.ambientevirtual infra.templatevm infra.templatehostnameip infra.templatecomando monitoramento.tipomonitoramento monitoramento.monitoramento monitoramento.prometheus colaborador.colaborador core.colaboradorgrupoacesso core.responsavelgrupotrabalho colaborador.vpn --indent 2 > ./doc/external/dump_private.json
# target: init-zero - insert admin user + permissions
init-zero:
@[ ${django_settings_module} ] || ( echo ">> django_settings_module is not set"; exit 1 )
if ! test -d ./apps/core/migrations/; then docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py makemigrations core colaborador infra monitoramento biblioteca; fi
docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py migrate
docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) python3 /app/doc/external/init_data.py
if test -e ./doc/external/dump_private.json; then docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py loaddata ./doc/external/dump_private.json; fi
# target: init - restore backup
init:
@[ ${django_settings_module} ] || ( echo ">> django_settings_module is not set"; exit 1 )
if ! test -d ./apps/core/migrations/; then docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py makemigrations core colaborador infra monitoramento biblioteca; fi
docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py migrate
if test -e ./doc/external/dump_private.json; then docker exec -it $$(docker ps --format "{{.Names}}" | grep django-celery) /app/manage.py loaddata ./doc/external/dump_private.json; fi
# update-prod: reload gunircon and celery
update-prod:
export django_settings_module=portal.settings.production
docker rm -f prod_django-celery
docker rm -f prod_gunicorn
docker image rm docker images prod_portal_django-celery --format "{{.ID}}"
docker image rm docker images prod_portal_gunicorn --format "{{.ID}}"
docker-compose -f ./docker/docker-compose_production_update -p prod_portal --project-directory $(shell pwd) up -d