1- .PHONY : help prepare doc test serve
1+ .PHONY : help prepare doc test serve build publish-production
22.DEFAULT_GOAL := help
33SHELL: =/bin/bash
44
5+ ifndef version
6+ override version = development
7+ endif
8+
9+ ifndef region
10+ override region = europe-north1
11+ endif
12+
13+ ifndef project
14+ override project = delta-entity-401706
15+ endif
16+
17+ ifndef PANEL_TOKEN
18+ # only for local dev, another token is used for deployment
19+ override PANEL_TOKEN = e41ea4c145bf13a60c8779c24356
20+ endif
21+
22+
523# Add help text after each target name starting with '\#\#'
624help : # # show this help
725 @echo -e " Help for this makefile\n"
@@ -11,6 +29,8 @@ help: ## show this help
1129prepare : # # Install dependencies and pre-commit hook
1230 pip install -e " .[dev]"
1331 pre-commit install
32+ gcloud init
33+ gcloud auth configure-docker
1434
1535doc : # # Build Sphinx documentation
1636 sphinx-build -b html docs docs/html
@@ -23,3 +43,36 @@ serve-dev: ## Serve Panel dashboard - Dev mode
2343
2444serve : # # Serve Panel dashboard - Prod mode
2545 panel serve app.py
46+
47+ build :
48+ docker build -f ./Dockerfile \
49+ --platform linux/amd64 \
50+ --build-arg PANEL_TOKEN=$(PANEL_TOKEN ) \
51+ --tag simdec-panel:$(version ) \
52+ --pull \
53+ ./.
54+
55+ run : build
56+ docker run --rm -it \
57+ --memory=1g \
58+ --cpuset-cpus=0 \
59+ -e ENV=development \
60+ -p " 8080:8080" \
61+ simdec-panel:$(version )
62+
63+ publish-production : build
64+ docker tag simdec-panel:$(version ) $(region ) -docker.pkg.dev/$(project ) /simdec-panel/simdec-panel:$(version )
65+ docker push $(region ) -docker.pkg.dev/$(project ) /simdec-panel/simdec-panel:$(version )
66+
67+ production : publish-production
68+ @echo " Deploying '$( version) '."
69+ gcloud run deploy simdec-panel \
70+ --concurrency=10 \
71+ --max-instances=1 \
72+ --region=$(region ) \
73+ --port=8080 \
74+ --set-env-vars ENV=production \
75+ --allow-unauthenticated \
76+ --timeout=10 \
77+ --image=$(region ) -docker.pkg.dev/$(project ) /simdec-panel/simdec-panel:$(version ) \
78+ --memory 1Gi
0 commit comments