aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorAlex <git@ajschof.me>2024-08-16 15:37:46 +0100
committerGitHub <noreply@github.com>2024-08-16 15:37:46 +0100
commit9d189d7c8c4fae09ece780521ab9c10935be8aaf (patch)
tree03938087ec6c91a744ea54eae056dea0eece549e /Makefile
parente153f2072eafca2c83a84e2c4210c46a40dabaf4 (diff)
parenteb3353ea0df1eee2df2c6a9a9efad121e56e1790 (diff)
downloadde-project-bentley-9d189d7c8c4fae09ece780521ab9c10935be8aaf.tar.gz
de-project-bentley-9d189d7c8c4fae09ece780521ab9c10935be8aaf.zip
Merge branch 'development' into extract_lambda_refactoring
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile80
1 files changed, 80 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..077cd98
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,80 @@
+##############################################
+# #
+# MAKEFILE TO BUILD THE PROJECT #
+# #
+##############################################
+
+PROJECT_NAME = de-project-bentley
+REGION = eu-west-2
+PYTHON_INTERPRETER = python
+WD=$(shell pwd)
+PYTHONPATH=${WD}
+SHELL := /bin/bash
+PROFILE = default
+PIP:=pip
+
+## PYTHON INTERPRETER ENVIRONMENT
+create-environment:
+ @echo ">>> About to create environment: $(PROJECT_NAME)..."
+ @echo ">>> check python3 version"
+ ( \
+ $(PYTHON_INTERPRETER) --version; \
+ )
+ @echo ">>> Setting up VirtualEnv."
+ ( \
+ $(PIP) install -q virtualenv virtualenvwrapper; \
+ virtualenv venv --python=$(PYTHON_INTERPRETER); \
+ )
+
+ACTIVATE_ENV := source venv/bin/activate
+
+# Execute python related functionalities from within the project's environment
+define execute_in_env
+ $(ACTIVATE_ENV) && $1
+endef
+
+## Build the environment requirements
+requirements: create-environment
+ $(call execute_in_env, $(PIP) install -r ./requirements.txt)
+
+# Set Up
+## Install bandit
+bandit:
+ $(call execute_in_env, $(PIP) install bandit)
+
+## Install safety
+safety:
+ $(call execute_in_env, $(PIP) install safety)
+
+## Install black
+black:
+ $(call execute_in_env, $(PIP) install black)
+
+## Install coverage
+coverage:
+ $(call execute_in_env, $(PIP) install coverage)
+
+## Set up dev requirements (bandit, safety, black)
+dev-setup: bandit safety black coverage
+
+# Build / Run
+
+## Run the security test (bandit + safety)
+security-test:
+ $(call execute_in_env, safety check -r ./requirements.txt)
+ $(call execute_in_env, bandit -lll */*.py *c/*/*.py)
+
+## Run the black code check
+run-black:
+ $(call execute_in_env, black ./src/*/*.py ./test/*/*.py)
+
+## Run the unit tests
+unit-test:
+ $(call execute_in_env, PYTHONPATH=${PYTHONPATH} pytest -v)
+
+## Run the coverage check
+check-coverage:
+ $(call execute_in_env, PYTHONPATH=${PYTHONPATH} pytest --cov=src test/)
+
+## Run all checks
+run-checks: security-test run-black unit-test check-coverage
git.ajschof.me — hosted by ajschofield — powered by cgit