add Makefile example for command automatization

master
TBS093A 2023-03-17 12:40:56 +01:00
parent 825d80b418
commit 921c1eb52e
1 changed files with 154 additions and 0 deletions

154
gitlab/Makefile 100644
View File

@ -0,0 +1,154 @@
PYTHON_VERSION_MIN=3.8
UBUNTU_VERSION=22.04.02
sys_ver = $(shell cat /etc/issue | cut -d " " -f2) # get version of ubuntu
tag = # tag for docker images
hello:
# _ _ _
# | | | | | |
# | |__| | ___| |_ __
# | __ |/ _ \ | '_ \
# | | | | __/ | |_) |
# |_| |_|\___|_| .__/
# | |
# |_|
@echo "available commands:"
@echo "make setUp developer environment, install all needed tools and packages "
@echo "make reqTests install test requirements"
@echo "make ut run unittests with coverage report"
@echo "make lint run isort, flake8, pylint "
@echo "make isort print isort check report "
@echo "make flake8 print flake8 check report"
@echo "make pylint print plint check report"
@echo "make installDocker install and config docker"
@echo "make install_venv install python-venv package "
@echo "make venv create virtual env (venv)"
@echo "make req install project requirements "
@echo "make build tag=<image tag> build docker image with given tag "
# stetUp developer environment
# install:
# docker, python-env package, create venv, install requirements and tests requirements, run unit tests
setUp: checkSys installDocker install_venv venv req reqTest ut
checkSys:
@echo "Check ubuntu version, if version >= 22 install additional package required by Azure speech engine"
ifeq ($(shell expr $(sys_ver) \>= 22.0 ), 1)
@echo "ubuntu ver " $(shell cat /etc/issue | cut -d " " -f2)
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb && rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb
endif
installDocker:
# _____ _ _ _ _____ _
# |_ _| | | | | | | __ \ | |
# | | _ __ ___| |_ __ _| | | | | | | ___ ___| | _____ _ __
# | | | '_ \/ __| __/ _` | | | | | | |/ _ \ / __| |/ / _ \ '__|
# _| |_| | | \__ \ || (_| | | | | |__| | (_) | (__| < __/ |
# |_____|_| |_|___/\__\__,_|_|_| |_____/ \___/ \___|_|\_\___|_|
#
#
sudo apt update
sudo apt install apt-transport-https curl gnupg-agent ca-certificates software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $$USER
newgrp docker
docker version
install_venv:
# _____ _ _ _
# |_ _| | | | | |
# | | _ __ ___| |_ __ _| | |
# | | | '_ \/ __| __/ _` | | |
# _| |_| | | \__ \ || (_| | | |
# |_____|_| |_|___/\__\__,_|_|_|
#
sudo apt install python3-venv
venv:
# _____ _
# / ____| | |
# | | _ __ ___ __ _| |_ ___ __ _____ _ ____ __
# | | | '__/ _ \/ _` | __/ _ \ \ \ / / _ \ '_ \ \ / /
# | |____| | | __/ (_| | || __/ \ V / __/ | | \ V /
# \_____|_| \___|\__,_|\__\___| \_/ \___|_| |_|\_/
#
#
python3 -m venv ./venv
@. venv/bin/activate
req:
# _____ _ _ _ _____ _ _
# |_ _| | | | | | | __ \ (_) | |
# | | _ __ ___| |_ __ _| | | | |__) |___ __ _ _ _ _ _ __ ___ _ __ ___ ___ _ __ | |_ ___
# | | | '_ \/ __| __/ _` | | | | _ // _ \/ _` | | | | | '__/ _ \ '_ ` _ \ / _ \ '_ \| __/ __|
# _| |_| | | \__ \ || (_| | | | | | \ \ __/ (_| | |_| | | | | __/ | | | | | __/ | | | |_\__ \
# |_____|_| |_|___/\__\__,_|_|_| |_| \_\___|\__, |\__,_|_|_| \___|_| |_| |_|\___|_| |_|\__|___/
# | |
# |_|
@. venv/bin/activate && pip install -r requirements.txt
reqTest:
# _____ _ _ _ _______ _ _____ _ _
# |_ _| | | | | | |__ __| | | | __ \ (_) | |
# | | _ __ ___| |_ __ _| | | | | ___ ___| |_ ___ | |__) |___ __ _ _ _ _ _ __ ___ _ __ ___ ___ _ __ | |_ ___
# | | | '_ \/ __| __/ _` | | | | |/ _ \/ __| __/ __| | _ // _ \/ _` | | | | | '__/ _ \ '_ ` _ \ / _ \ '_ \| __/ __|
# _| |_| | | \__ \ || (_| | | | | | __/\__ \ |_\__ \ | | \ \ __/ (_| | |_| | | | | __/ | | | | | __/ | | | |_\__ \
# |_____|_| |_|___/\__\__,_|_|_| |_|\___||___/\__|___/ |_| \_\___|\__, |\__,_|_|_| \___|_| |_| |_|\___|_| |_|\__|___/
# | |
# |_|
@. venv/bin/activate && pip install -r tests/requirements.txt
build:
# ______ _ _ _
# | ___ \ (_) | | |
# | |_/ /_ _ _| | __| |
# | ___ \ | | | | |/ _` |
# | |_/ / |_| | | | (_| |
# \____/ \__,_|_|_|\__,_|
#
@echo "build docker image with tag $(tag)"
docker build . -t $(tag)
isort:
isort .
flake8:
flake8
pylint:
pylint *.py **/*.py
lint:
# _ _ _ _____ _ _
# | | (_) | | / ____| | | |
# | | _ _ __ | |_ ___ _ __ | | | |__ ___ ___| | __
# | | | | '_ \| __/ _ \ '__| | | | '_ \ / _ \/ __| |/ /
# | |____| | | | | || __/ | | |____| | | | __/ (__| <
# |______|_|_| |_|\__\___|_| \_____|_| |_|\___|\___|_|\_\
#
#
isort .
flake8
pylint *.py **/*.py
ut: reqTest
# _ _ _____
# | | | |_ _|
# | | | | | |
# | | | | | |
# | |_| | | |
# \___/ \_/
#
#
@echo "run UT tests "
@. venv/bin/activate && pytest --cov-report term --cov=control_application tests