This repository was archived by the owner on May 22, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathMakefile
More file actions
52 lines (42 loc) · 2.01 KB
/
Makefile
File metadata and controls
52 lines (42 loc) · 2.01 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
.PHONY: help
PROJECT = fullstack-starter-kit
VERSION ?= $(shell git show --quiet --format="%cd-%h" --date=short)
SERVICE ?= backend
IMAGE ?= ${PROJECT}/${SERVICE}
ENVIRONMENT ?= development
BACKEND_IMAGE = ${PROJECT}/backend
FRONTEND_IMAGE = ${PROJECT}/frontend
# Used for `make up` when specifying a service, e.g. `make up frontend`
LASTWORD = $(lastword $(MAKECMDGOALS))
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' ${MAKEFILE_LIST} | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
version: ## Print version of app; used for tagging docker images
@echo "${VERSION}"
# Executed only when starting `make up` the first time:
.env:
cp .env.example .env
up: .env ## Start local dev environment with docker-compose; specify service via `make up frontend`
docker-compose -p "${PROJECT}" build --pull
@if [[ "${LASTWORD}" != "up" ]]; then \
docker-compose -p "${PROJECT}" up --force-recreate ${LASTWORD}; \
else \
docker-compose -p "${PROJECT}" up --force-recreate; \
fi
down: ## Teardown local dev environment with docker-compose
docker-compose -p "${PROJECT}" down --volumes --remove-orphans
build: ## Build docker image; e.g. `make build -e SERVICE=backend`
@docker build \
--force-rm --pull --no-cache \
-t ${IMAGE}:${VERSION} \
-f ${SERVICE}/Dockerfile \
--target release \
${SERVICE}
test: frontend-tests backend-tests
frontend-tests:
@docker-compose -p "${PROJECT}_${VERSION}_frontend_tests" -f docker-compose.ci.yml build frontend-tests
@docker-compose -p "${PROJECT}_${VERSION}_frontend_tests" -f docker-compose.ci.yml run --rm frontend-tests
@docker-compose -p "${PROJECT}_${VERSION}_frontend_tests" -f docker-compose.ci.yml down -v --remove-orphans
backend-tests:
@docker-compose -p "${PROJECT}_${VERSION}_frontend_tests" -f docker-compose.ci.yml build backend-tests
@docker-compose -p "${PROJECT}_${VERSION}_backend_tests" -f docker-compose.ci.yml run --rm backend-tests
@docker-compose -p "${PROJECT}_${VERSION}_backend_tests" -f docker-compose.ci.yml down -v --remove-orphans