refactor: simplify Makefile and update scripts

This commit is contained in:
KaySar12 2025-05-20 08:35:18 +07:00
parent 194ea6558d
commit 6343058ece
3 changed files with 30 additions and 34 deletions

View File

@ -4,6 +4,9 @@ endif
ifneq ("$(wildcard automation/automation.mk)", "") ifneq ("$(wildcard automation/automation.mk)", "")
include automation/automation.mk include automation/automation.mk
endif endif
ifneq ("$(wildcard utility/utility.mk)", "")
include utility/utility.mk
endif
.SHELLFLAGS += ${SHELLFLAGS} -e .SHELLFLAGS += ${SHELLFLAGS} -e
PWD = $(shell pwd) PWD = $(shell pwd)
UID = $(shell id -u) UID = $(shell id -u)
@ -18,26 +21,23 @@ DOCKER_PUSH=$(DOCKERCMD) push
DOCKER_IMAGE=$(DOCKERCMD) image DOCKER_IMAGE=$(DOCKERCMD) image
DOCKER_EXEC=$(DOCKERCMD) exec DOCKER_EXEC=$(DOCKERCMD) exec
DEPLOY_PATH=${PWD}/deployment DEPLOY_PATH=${PWD}/deployment
SETUP_PATH=${PWD}/setup SCRIPT_PATH=${PWD}/utility/scripts
CONFIG=odoo.conf CONFIG=odoo.conf
HUB=hub.nextzenos.com HUB=hub.nextzenos.com
CDN=https://cdn.nextzenos.com/CDN/NextERP CDN=https://cdn.nextzenos.com/CDN/NextERP
ORGANIZATION=nexterp ORGANIZATION=nexterp
PROJECT := odoo18 PROJECT := Odoo18-Base
ODOO_IMAGE=${HUB}/${ORGANIZATION}/$(PROJECT) ODOO_IMAGE=${HUB}/${ORGANIZATION}/$(PROJECT)
TAG := $(shell git rev-parse --abbrev-ref HEAD) TAG := $(shell git rev-parse --abbrev-ref HEAD)
CONTAINER_ID=${PROJECT}-${TAG} CONTAINER_ID=${PROJECT}-${TAG}
VERSION := community VERSION := community
ADDONS=${PWD}/addons,${PWD}/odoo/addons,${PWD}/extra-addons 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 BACKUP=${CDN}/raw/branch/main/backup/${VERSION}/odoo18-main_2025-01-15_08-05-47.zip
AUTOMATION_PATH=${PWD}/automation AUTOMATION_PATH=${PWD}/automation
UPGRADE_SCRIPTS=$(shell cat upgrade_scripts | tr '\n' ',')
########### Automation ######### push_code:
deploy-native: $(PYTHON) ${SCRIPT_PATH}/interpreter/gen_commit.py $(GIT_USER) $(GIT_PASS) $(PWD)
@echo "Not implemented"
##### Virtual Environment ##### ##### Virtual Environment #####
check-virtualenv: check-virtualenv:
@if [ "$(VENV)" = "missing" ]; then \ @if [ "$(VENV)" = "missing" ]; then \
echo "Creating virtual environment..."; \ echo "Creating virtual environment..."; \
@ -52,20 +52,7 @@ install: check-virtualenv
sudo apt update -y && \ sudo apt update -y && \
sudo apt install -y python3-pip libldap2-dev libpq-dev libsasl2-dev postgresql-client libreoffice wkhtmltopdf ansible terraform&& \ 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 ${PIP} install --no-input -r requirements.txt --break-system-packages
download_backup: #$(MAKE) download_backup LINKDB=${BACKUP}
@if [ -z "${LINKDB}" ]; then \
LinkDB=${BACKUP}; \
read -p "LinkDownload [default: ${BACKUP}]: " InputLinkDB; \
LinkDB=$${InputLinkDB:-${BACKUP}}; \
else \
LinkDB=${LINKDB}; \
fi; \
Filename=$$(basename $$LinkDB); \
echo "Downloading $$Filename from: $$LinkDB"; \
${PWD}/setup/download_backup.sh $$LinkDB backup.zip
gen_config:
$(MAKE) download_backup LINKDB=${BACKUP}
${PWD}/setup/init_config.sh --native ${ADDONS} ${DB_USER} ${DB_PASSWORD} ${DB_SERVER} ${DB_PORT}
run_server: run_server:
${PYTHON} odoo-bin --config=${CONFIG} ${PYTHON} odoo-bin --config=${CONFIG}
run_test: run_test:
@ -82,22 +69,32 @@ scaffold_module:
read -p "addons Path[eg:addons, extra-addons, exercise]: " ModulePath; \ read -p "addons Path[eg:addons, extra-addons, exercise]: " ModulePath; \
${PYTHON} odoo-bin scaffold $$ModuleName && \ ${PYTHON} odoo-bin scaffold $$ModuleName && \
mv $$ModuleName ${PWD}/$$ModulePath; mv $$ModuleName ${PWD}/$$ModulePath;
cleanup_addons:
@bash ${PWD}/setup/clean_up_addons.sh $(shell echo $(ADDONS) | tr ',' ' ')
install_modules: install_modules:
${PYTHON} odoo-bin --config=${CONFIG} -d ${DATABASE} -i ${MODULES} --xmlrpc-port=${PORT} ${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 ######### ##### Docker Deployment #########
run_test_docker: 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 --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} sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} drop testdb-${TAG}
gen_config_docker: # $(MAKE) download_backup LINKDB=${BACKUP}
$(MAKE) download_backup LINKDB=${BACKUP}
${PWD}/setup/init_config.sh --docker ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID}
build_image: build_image:
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress plain --tag ${ODOO_IMAGE}:${TAG} (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: push_image:
$(DOCKER_PUSH) ${ODOO_IMAGE}:${TAG} $(DOCKER_PUSH) $(shell echo ${ODOO_IMAGE}| tr A-Z a-z):${TAG}
run_server_docker: run_server_docker:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \ @if ! docker ps | grep -q "${CONTAINER_ID}"; then \
echo "Container not found. Running docker-compose up -d"; \ echo "Container not found. Running docker-compose up -d"; \
@ -106,8 +103,6 @@ run_server_docker:
fi fi
cd ${DEPLOY_PATH} &&\ cd ${DEPLOY_PATH} &&\
${DOCKER_COMPOSE_CMD} up -d ${DOCKER_COMPOSE_CMD} up -d
update_tag:
${SETUP_PATH}/update_tag.sh $(CURR_BRANCH)
restore_database_docker: restore_database_docker:
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db -c /etc/odoo/odoo.conf load backup /var/lib/odoo/backup/backup.zip sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db -c /etc/odoo/odoo.conf load backup /var/lib/odoo/backup/backup.zip
stop_server_docker: stop_server_docker:
@ -132,6 +127,7 @@ clean_up:
! -name "*.template" \ ! -name "*.template" \
! -name "*.py" \ ! -name "*.py" \
! -name "*.yml" \ ! -name "*.yml" \
! -name "*.txt" \
-print0 | sudo xargs -0 rm -rf {} && \ -print0 | sudo xargs -0 rm -rf {} && \
sudo rm -rf ${DEPLOY_PATH}/etc/* sudo rm -rf ${DEPLOY_PATH}/etc/*

@ -1 +1 @@
Subproject commit 14084a207829189b12e258ff3d9b71d7a8194de3 Subproject commit cc10299c2ebca1fa18fd30017cbab8291bda633b

@ -1 +1 @@
Subproject commit 9a1c76e1af73a832f1d44e5c1c41624a8385bdcc Subproject commit 4534f0d1c95856d646e975be0ef669b4127b5d42