-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
57 lines (43 loc) · 2.09 KB
/
Makefile
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
#
# Challenge Sever
# Copyright 2024 Carnegie Mellon University.
# NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
# Licensed under a MIT (SEI)-style license, please see license.txt or contact [email protected] for full terms.
# [DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
# DM24-0645
#
VENV_DIR := .venv
PYTHON := python3.13
REQUIREMENTS := requirements.txt
APP_DIR := ./src
APP := app.py
.PHONY: all venv run update freeze clean test docker-build docker-run docker-compose docker-all
all: venv run
venv:
sudo $(PYTHON) -m venv $(VENV_DIR)
sudo $(VENV_DIR)/bin/pip install --no-cache-dir --upgrade pip
sudo $(VENV_DIR)/bin/pip install --no-cache-dir -r $(REQUIREMENTS)
run:
rm -f $(APP_DIR)/challenge.db && cd $(APP_DIR) && sudo ../$(VENV_DIR)/bin/python $(APP)
test:
rm -f $(APP_DIR)/challenge.db && cd $(APP_DIR) && sudo token1="MyToken1" token2="MyToken2" token3="MyToken3" token4="MyToken4" ../$(VENV_DIR)/bin/python $(APP)
update:
$(VENV_DIR)/bin/pip list --outdated | cut -d '=' -f 1 | xargs -n1 $(VENV_DIR)/bin/pip install -U
freeze:
$(VENV_DIR)/bin/pip freeze | cut -d '=' -f 1 > $(REQUIREMENTS)
docker-build:
docker build -t challenge-server .
docker-run:
docker run -p 8888:8888 challenge-server
docker-test:
docker run -p 8888:8888 \
-e token1="MyToken1" \
-e token2="MyToken2" \
-e token3="MyToken3" \
-e token4="MyToken4" \
challenge-server
docker-compose:
docker-compose run --build --rm --service-ports challenge-server
docker-all: docker-build docker-run
clean:
sudo rm -rf $(VENV_DIR)