Added basic framework
This commit is contained in:
commit
2f9d1a75a0
12 changed files with 211 additions and 0 deletions
102
Makefile
Executable file
102
Makefile
Executable file
|
|
@ -0,0 +1,102 @@
|
|||
# =====CONFIG=====
|
||||
# File to run when make run is called
|
||||
MAIN=main.py
|
||||
# Source directory
|
||||
SRC=frank
|
||||
# Directory name of the venv
|
||||
# Don't put spaces in the VENV name, make does not like spaces
|
||||
# Run make clean first if you do this after already having created a venv
|
||||
VENV=venv
|
||||
# Docs directory
|
||||
DOCS=docs
|
||||
# Tests directory
|
||||
TESTS=tests
|
||||
# Interpreter to create venv with
|
||||
INTERPRETER=python3.8
|
||||
# Docker image name:tag
|
||||
IMAGE='chewingbever/frank:latest'
|
||||
|
||||
|
||||
all: run
|
||||
|
||||
# Re-create venv when needed
|
||||
$(VENV)/bin/activate: requirements.txt
|
||||
@ echo "Rebuilding venv..."
|
||||
@ [ ! -e "$(VENV)" ] || rm -rf "$(VENV)"
|
||||
@ "$(INTERPRETER)" -m venv "$(VENV)"
|
||||
@ "$(VENV)/bin/pip" install -r requirements.txt
|
||||
|
||||
build: $(VENV)/bin/activate
|
||||
|
||||
# Run script
|
||||
run: build
|
||||
@ "$(VENV)/bin/python" "$(MAIN)"
|
||||
|
||||
# =====DOCKER=====
|
||||
# Build docker image
|
||||
dbuild: docker/Dockerfile
|
||||
@ docker build -f docker/Dockerfile -t $(IMAGE) .
|
||||
|
||||
# Run docker
|
||||
drun: dbuild docker/docker-compose.yml
|
||||
@ docker-compose -f docker/docker-compose.yml up
|
||||
|
||||
# run docker as daemon
|
||||
drund: dbuild docker/docker-compose.yml
|
||||
@ docker-compose -f docker/docker-compose.yml up -d
|
||||
|
||||
dpush: dbuild
|
||||
@ docker push $(IMAGE)
|
||||
|
||||
# =====CLEANING=====
|
||||
clean: clean-venv clean-cache clean-docs
|
||||
|
||||
# Remove venv
|
||||
clean-venv:
|
||||
@ echo "Removing venv..."
|
||||
@ [ ! -e "$(VENV)" ] || rm -rf "$(VENV)"
|
||||
|
||||
# Remove cache
|
||||
clean-cache:
|
||||
@ echo "Removing .pyc files..."
|
||||
@ find . -type f -name "*.pyc" -delete
|
||||
@ echo "Removing caches..."
|
||||
@ find . -type d \( -name "__pycache__" -o -name ".pytest_cache" \) -exec rm -r "{}" +
|
||||
|
||||
clean-docs:
|
||||
@ echo "Removing documentation build..."
|
||||
@ [ ! -e "$(DOCS)/build" ] || rm -r "$(DOCS)/build"
|
||||
|
||||
|
||||
# =====DOCS=====
|
||||
$(VENV)/bin/sphinx-build: build
|
||||
@ echo "Installing sphinx..."
|
||||
@ "$(VENV)/bin/pip" install --quiet sphinx
|
||||
|
||||
docs: $(VENV)/bin/sphinx-build
|
||||
@ "$(VENV)/bin/sphinx-apidoc" -o "$(DOCS)/source" "$(SRC)"
|
||||
@ "$(VENV)/bin/sphinx-build" "$(DOCS)/source" "$(DOCS)/build"
|
||||
|
||||
|
||||
# =====TESTS=====
|
||||
$(VENV)/bin/pytest: build
|
||||
@ echo "Installing pytest..."
|
||||
@ "$(VENV)/bin/pip" install --quiet pytest
|
||||
|
||||
test: pytest.ini build
|
||||
@ "$(VENV)/bin/pytest" --color=yes
|
||||
|
||||
|
||||
# =====PACKAGING=====
|
||||
package: README.md LICENSE setup.py test
|
||||
@ echo "Removing build..."
|
||||
@ [ ! -e "dist" ] || rm -r "dist"
|
||||
@ echo "Updating wheel & setuptools..."
|
||||
@ "$(VENV)/bin/pip" install --upgrade --quiet setuptools wheel
|
||||
@ echo "Running setup.py..."
|
||||
@ "$(VENV)/bin/python" setup.py sdist bdist_wheel
|
||||
|
||||
# Publish will also come here someday
|
||||
|
||||
.PHONY: all run clean clean-venv clean-cache clean-docs test package docs \
|
||||
build dbuild drun dpush drund
|
||||
Reference in a new issue