This repository was archived by the owner on Mar 15, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathMakefile
More file actions
95 lines (81 loc) · 2.63 KB
/
Makefile
File metadata and controls
95 lines (81 loc) · 2.63 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
SHELL := bash
.SHELLFLAGS := -eu -o pipefail -c
.ONESHELL:
.DELETE_ON_ERROR:
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
ENV_FILE_NAME ?= config.local.json
DOCKER_IMAGE_NAME = ghcr.io/reconmap/web-client
DOCKER_CONTAINER_NAME = reconmap-web-client
DOCKER_DEV_TAG = reconmap/web-client:dev
# macOS is using different IDs than linux
UNAME=$(shell uname)
ifeq ($(UNAME),Darwin)
HOST_UID=1000
HOST_GID=1000
else
HOST_UID=$(shell id -u)
HOST_GID=$(shell id -g)
endif
CONTAINER_UID_GID=$(HOST_UID):$(HOST_GID)
GIT_BRANCH_NAME = $(shell git rev-parse --abbrev-ref HEAD)
GIT_COMMIT_HASH = $(shell git rev-parse --short HEAD)
.PHONY: prepare
prepare:
docker build -f docker/node.Dockerfile --build-arg HOST_UID=$(HOST_UID) --build-arg HOST_GID=$(HOST_GID) -t $(DOCKER_DEV_TAG) .
docker run -u $(CONTAINER_UID_GID) --rm -t -v $(PWD):/home/node/app -w /home/node/app --entrypoint npm $(DOCKER_DEV_TAG) install
.PHONY: start
start:
docker run -u $(CONTAINER_UID_GID) --rm -it \
-v $(PWD):/home/node/app \
-v $(PWD)/$(ENV_FILE_NAME):/home/node/app/public/config.json \
-w /home/node/app \
-p 5500:5500 \
-e VITE_GIT_COMMIT_HASH=$(GIT_COMMIT_HASH) \
--entrypoint npm \
--name $(DOCKER_CONTAINER_NAME) \
$(DOCKER_DEV_TAG) run start
.PHONY: stop
stop:
docker stop $(DOCKER_CONTAINER_NAME) || true
.PHONE: lint
lint:
docker run -u $(CONTAINER_UID_GID) --rm \
-v $(PWD):/home/node/app \
-v $(PWD)/$(ENV_FILE_NAME):/home/node/app/public/config.json \
-w /home/node/app \
--entrypoint npm $(DOCKER_DEV_TAG) run lint
docker run -u $(CONTAINER_UID_GID) --rm \
-v $(PWD):/home/node/app \
-v $(PWD)/$(ENV_FILE_NAME):/home/node/app/public/config.json \
-w /home/node/app \
--entrypoint npx $(DOCKER_DEV_TAG) stylelint "**/*.css"
.PHONY: tests
tests: lint
docker run -u $(CONTAINER_UID_GID) --rm -it \
-v $(PWD):/home/node/app \
-v $(PWD)/$(ENV_FILE_NAME):/home/node/app/public/config.json \
-w /home/node/app \
--entrypoint npm $(DOCKER_DEV_TAG) run test
.PHONY: tests-ci
tests-ci:
docker run -u $(CONTAINER_UID_GID) --rm -t \
-v $(PWD):/home/node/app \
-v $(PWD)/$(ENV_FILE_NAME):/home/node/app/public/config.json \
-w /home/node/app \
--entrypoint npm $(DOCKER_DEV_TAG) run test:coverage
.PHONY: clean
clean: stop
git clean -fdx
.PHONY: build
build:
docker build -f docker/app.Dockerfile \
--build-arg RECONMAP_APP_GIT_COMMIT_HASH=$(GIT_COMMIT_HASH) \
-t $(DOCKER_IMAGE_NAME):$(GIT_BRANCH_NAME) -t $(DOCKER_IMAGE_NAME):latest .
.PHONY: push
push:
docker push $(DOCKER_IMAGE_NAME):$(GIT_BRANCH_NAME)
docker push $(DOCKER_IMAGE_NAME):latest
.PHONY: shell
shell:
docker exec -it $(DOCKER_CONTAINER_NAME) bash