Odoo18-Base/Makefile
KaySar12 716af73a0c
All checks were successful
Setup Native Action / native (3.12.7) (push) Has been skipped
Setup Native Action / docker (3.12.7) (push) Has been skipped
update upgrade scripts and make file upgrade_module command
2025-04-14 10:37:15 +07:00

132 lines
5.0 KiB
Makefile

ifneq ("$(wildcard .env)", "")
include .env
endif
ifneq ("$(wildcard automation/automation.mk)", "")
include automation/automation.mk
endif
ifneq ("$(wildcard utility/utility.mk)", "")
include utility/utility.mk
endif
.SHELLFLAGS += ${SHELLFLAGS} -e
PWD = $(shell pwd)
UID = $(shell id -u)
GID = $(shell id -g)
PIP=${PWD}/venv/bin/pip
PYTHON=${PWD}/venv/bin/python
VENV := $(shell [ -d "${PWD}/venv" ] && echo "exists" || echo "missing")
DOCKERCMD=docker
DOCKER_COMPOSE_CMD=docker-compose
DOCKER_BUILD=$(DOCKERCMD) build
DOCKER_PUSH=$(DOCKERCMD) push
DOCKER_IMAGE=$(DOCKERCMD) image
DOCKER_EXEC=$(DOCKERCMD) exec
DEPLOY_PATH=${PWD}/deployment
SCRIPT_PATH=${PWD}/utility/scripts
CONFIG=odoo.conf
HUB=hub.nextzenos.com
CDN=https://cdn.nextzenos.com/CDN/NextERP
ORGANIZATION=nexterp
PROJECT := Odoo18-Base
ODOO_IMAGE=${HUB}/${ORGANIZATION}/$(PROJECT)
TAG := $(shell git rev-parse --abbrev-ref HEAD)
CONTAINER_ID=${PROJECT}-${TAG}
VERSION := community
ADDONS=${PWD}/addons,${PWD}/odoo/addons,${PWD}/extra-addons
BACKUP=${CDN}/raw/branch/main/backup/${VERSION}/odoo18-main_2025-01-15_08-05-47.zip
AUTOMATION_PATH=${PWD}/automation
UPGRADE_SCRIPTS=$(shell cat upgrade_scripts | tr '\n' ',')
##### Virtual Environment #####
check-virtualenv:
@if [ "$(VENV)" = "missing" ]; then \
echo "Creating virtual environment..."; \
python3 -m venv venv; \
echo "Installing pip dependencies..."; \
$(PIP) install --upgrade pip; \
else \
echo "Skipping Creating virtual environment..."; \
fi;
##### Native Deployment#########
install: check-virtualenv
sudo apt update -y && \
sudo apt install -y python3-pip libldap2-dev libpq-dev libsasl2-dev postgresql-client libreoffice wkhtmltopdf ansible terraform&& \
${PIP} install --no-input -r requirements.txt --break-system-packages
#$(MAKE) download_backup LINKDB=${BACKUP}
run_server:
${PYTHON} odoo-bin --config=${CONFIG}
run_test:
${PYTHON} odoo-bin --test-tags :TestAccountMove.test_out_invoice_auto_post_monthly,TestAccountMove.test_included_tax --log-level=test --test-enable -d testdb-${TAG} --stop-after-init --config=${CONFIG}
${PYTHON} odoo-bin db --config=${CONFIG} drop testdb-${TAG}
restore_database:
@read -p "Backup Path [default: ${PWD}/deployment/backup/backup.zip]: " InputbackupDB; \
BackupDB=$${InputbackupDB:-${PWD}/deployment/backup/backup.zip}; \
read -p "Enter the database name: " DBNAME; \
echo "Restoring database: $$DBNAME"; \
${PYTHON} odoo-bin db --config=${CONFIG} load "$$DBNAME" "$$BackupDB"
scaffold_module:
read -p "Module Name: " ModuleName; \
read -p "addons Path[eg:addons, extra-addons, exercise]: " ModulePath; \
${PYTHON} odoo-bin scaffold $$ModuleName && \
mv $$ModuleName ${PWD}/$$ModulePath;
install_modules:
${PYTHON} odoo-bin --config=${CONFIG} -d ${DATABASE} -i ${MODULES} --xmlrpc-port=${PORT}
upgrade_modules:
@for script in $$(cat upgrade_scripts); do \
echo "Running upgrade script: $$script"; \
${PYTHON} odoo-bin upgrade_code --script $$script --addons-path=${UPGRADE_DIR} || true; \
done
delete_records:
${PYTHON} ${SCRIPT_PATH}/delete_records.py ${DATABASE} ${BASE_MODEL} --force
drop_database:
${PYTHON} odoo-bin db --config=${CONFIG} drop ${DATABASE}
##### Docker Deployment #########
run_test_docker:
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo --test-tags :TestAccountMove.test_out_invoice_auto_post_monthly,TestAccountMove.test_included_tax --log-level=test --test-enable -d testdb-${TAG} --stop-after-init --config=/etc/odoo/${CONFIG} --xmlrpc-port=8071 && \
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} drop testdb-${TAG}
# $(MAKE) download_backup LINKDB=${BACKUP}
build_image:
(cd ${DEPLOY_PATH} && \
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress=plain --no-cache --tag $$(echo ${ODOO_IMAGE} | tr A-Z a-z):${TAG}\
)
build_image_cache:
(cd ${DEPLOY_PATH} && \
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress=plain --tag $$(echo ${ODOO_IMAGE} | tr A-Z a-z):${TAG}\
)
push_image:
$(DOCKER_PUSH) $(shell echo ${ODOO_IMAGE}| tr A-Z a-z):${TAG}
run_server_docker:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \
echo "Container not found. Running docker-compose up -d"; \
else \
echo "Container already running. Skipping docker-compose up -d."; \
fi
cd ${DEPLOY_PATH} &&\
${DOCKER_COMPOSE_CMD} up -d
restore_database_docker:
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db -c /etc/odoo/odoo.conf load backup /var/lib/odoo/backup/backup.zip
stop_server_docker:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \
echo "Container not found. Skipping"; \
else \
cd ${DEPLOY_PATH} &&\
${DOCKER_COMPOSE_CMD} down; \
fi
clean_up:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \
echo "Container not found. Skipping"; \
else \
cd ${DEPLOY_PATH} &&\
${DOCKER_COMPOSE_CMD} down; \
fi
find "${DEPLOY_PATH}" -mindepth 1 -maxdepth 1 \
! -name "etc" \
! -name "addons" \
! -name "backup" \
! -name "*.sh" \
! -name "*.template" \
! -name "*.py" \
! -name "*.yml" \
! -name "*.txt" \
-print0 | sudo xargs -0 rm -rf {} && \
sudo rm -rf ${DEPLOY_PATH}/etc/*