-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
81 lines (62 loc) · 2.37 KB
/
Copy pathMakefile
File metadata and controls
81 lines (62 loc) · 2.37 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
.PHONY: docker-up docker-down docker-delete-db-volume docker-trivy-scan frontend-install frontend-build frontend-run frontend-lint frontend-format gcimport-install gcimport-test gcimport-run gccore-install gccore-test gccore-run gcjobs-install gcjobs-test gcjobs-run
DOCKER_COMPOSE := $(shell command -v docker-compose >/dev/null 2>&1 && echo docker-compose || echo 'docker compose')
DOCKER_SERVICES := geocomponents gcimport gccore gcjobs gcmapview
TRIVY_SERVICES := $(if $(SERVICE),$(SERVICE),$(DOCKER_SERVICES))
DOCKER_SOCKET ?= /var/run/docker.sock
TRIVY_IMAGE ?= aquasec/trivy:latest
TRIVY_CACHE_DIR ?= $(HOME)/.cache/trivy
docker-up:
cd geocomponents && $(DOCKER_COMPOSE) up
docker-down:
cd geocomponents && $(DOCKER_COMPOSE) down
docker-delete-db-volume:
docker volume rm "geocomponents_pgdata"
docker-trivy-scan:
@command -v docker >/dev/null 2>&1 || { echo "docker is required"; exit 1; }
@[ -S "$(DOCKER_SOCKET)" ] || { echo "docker socket not found at $(DOCKER_SOCKET)"; exit 1; }
@[ -z "$(SERVICE)" ] || echo " $(DOCKER_SERVICES) " | grep -Fq " $(SERVICE) " || { echo "unknown SERVICE '$(SERVICE)'; expected one of: $(DOCKER_SERVICES)"; exit 1; }
@mkdir -p "$(TRIVY_CACHE_DIR)"
@set -e; \
for service in $(TRIVY_SERVICES); do \
echo "Building $$service:scan"; \
docker build -t "$$service:scan" "./$$service"; \
echo "Scanning $$service:scan with Trivy in Docker"; \
docker run --rm \
-v "$(DOCKER_SOCKET):/var/run/docker.sock" \
-v "$(TRIVY_CACHE_DIR):/root/.cache/trivy" \
"$(TRIVY_IMAGE)" image \
--format table \
--exit-code 1 \
--ignore-unfixed \
--vuln-type os,library \
--severity CRITICAL,HIGH \
"$$service:scan"; \
done
frontend-install:
npm --prefix gcmapview install --ignore-scripts
frontend-build:
npm --prefix gcmapview run build
frontend-run:
npm --prefix gcmapview run dev
frontend-lint:
npm --prefix gcmapview run lint
frontend-format:
npm --prefix gcmapview run format
gcimport-install:
uv sync --project gcimport
gcimport-test:
cd gcimport && uv run pytest
gcimport-run:
uv run --project gcimport uvicorn gcimport.app:app --port 8001
gccore-install:
uv sync --project gccore
gccore-test:
cd gccore && uv run pytest
gccore-run:
uv run --project gccore gccore serve --port 8002
gcjobs-install:
uv sync --project gcjobs
gcjobs-test:
cd gcjobs && uv run pytest
gcjobs-run:
uv run --project gcjobs gcjobs serve --port 8003