Docker and testing changes
[wolnelektury.git] / Makefile
index 77d345d..3f1b3c4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
-.PHONY: deploy test shell
+.PHONY: deploy test up down build shell logs restart
 
 
-UID != id -u
-GID != id -g
+UID := $(shell id -u)
+GID := $(shell id -g)
 
 
 deploy: src/wolnelektury/localsettings.py
@@ -12,20 +12,30 @@ deploy: src/wolnelektury/localsettings.py
        src/manage.py collectstatic --noinput
 
 
-.ONESHELL:
+TEST_COMPOSE := docker compose -f docker-compose.test.yml
+
 test:
-       cd src
-       python -Wall -m coverage run --branch --source='.' ./manage.py test; true
-       coverage html -d ../htmlcov.new
-       rm -rf ../htmlcov
-       mv ../htmlcov.new ../htmlcov
-       coverage report
-       rm .coverage
+       mkdir -p htmlcov
+       UID=$(UID) GID=$(GID) $(TEST_COMPOSE) run --rm --build test sh -c '\
+         python -Wall -m coverage run --branch --source=. ./manage.py test $(ARGS); s=$$?; \
+         coverage report --skip-covered; coverage html -d /app/htmlcov; exit $$s'; \
+       status=$$?; $(TEST_COMPOSE) down; exit $$status
 
 
-shell:
-       UID=$(UID) GID=$(GID) docker-compose run --rm dev bash
+up:
+       UID=$(UID) GID=$(GID) docker compose up --build -d
 
+down:
+       docker compose down
 
 build:
-       UID=$(UID) GID=$(GID) docker-compose build dev
+       UID=$(UID) GID=$(GID) docker compose build
+
+shell:
+       UID=$(UID) GID=$(GID) docker compose exec web bash
+
+logs:
+       docker compose logs -f
+
+restart:
+       docker compose restart