-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
61 lines (47 loc) · 2.03 KB
/
Copy pathMakefile
File metadata and controls
61 lines (47 loc) · 2.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
COMPOSE_FILE=docker-compose.yaml
MARKUPP_WORKDIR=/src
DB_CONFIG_PKG=./internal/storage
DOCKER_COMPOSE=docker compose
META_COVERAGE=90
PERFIL_COVERAGE=markupp/cover.out
.PHONY: all test-db-config compose-config compose-env docker-up docker-test docker-down run hooks test-scripts coverage coverage-check
all: compose-env compose-config docker-up docker-test docker-down
test: docker-test
# Testa o módulo de banco de dados do servidor dentro de um contêiner Docker
test-db-config:
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) run --rm markupp sh -c "cd $(MARKUPP_WORKDIR) && go test $(DB_CONFIG_PKG)"
# Valida o arquivo docker-compose e a interpolação de variáveis de ambiente
compose-config:
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) config
# Configura variáveis de ambiente no ambiente do Compose
compose-env:
@if [ ! -f .env ]; then \
printf 'MARKUPP_PORT=8080\nDATA_VOLUME=markupp_data\nGO_MOD_CACHE=go_mod_cache\n' > .env; \
fi
@echo ".env criado/atualizado com sucesso."
# Sobe o container Docker do servidor em modo destacado
docker-up:
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) up -d --build markupp
# Executa todos os testes Go do servidor dentro do container Docker em execução
docker-test:
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) run --rm markupp sh -c "cd $(MARKUPP_WORKDIR) && go test ./..."
# Desce e remove o container Docker usado nos testes
docker-down:
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) down
# Roda a aplicação completa com air via Docker
run: compose-env compose-config
$(DOCKER_COMPOSE) -f $(COMPOSE_FILE) up --build markupp
# Instala os hooks de pre-commit neste clone
hooks:
pre-commit install
# Roda os testes dos scripts de apoio
test-scripts:
./scripts/valida-mensagem-de-commit-test.sh
./scripts/verifica-coverage-test.sh
# Mede o coverage do servidor e checa a meta minima
coverage:
cd markupp && go test ./... -coverprofile=../$(PERFIL_COVERAGE) -covermode=atomic
$(MAKE) coverage-check
# Checa um coverprofile ja existente contra a meta minima
coverage-check:
./scripts/verifica-coverage.sh $(PERFIL_COVERAGE) $(META_COVERAGE)