Odoo18-Base/Makefile

78 lines
2.6 KiB
Makefile
Raw Normal View History

2025-01-06 10:57:38 +07:00
.SHELLFLAGS += ${SHELLFLAGS} -e
PWD = $(shell pwd)
UID = $(shell id -u)
GID = $(shell id -g)
2025-01-06 11:42:15 +07:00
PYTHON=python
2025-01-06 10:57:38 +07:00
DOCKERCMD=docker
2025-01-07 17:52:17 +07:00
DOCKER_COMPOSE_CMD=docker-compose
2025-01-06 10:57:38 +07:00
DOCKER_BUILD=$(DOCKERCMD) build
DOCKER_PUSH=$(DOCKERCMD) push
DOCKER_IMAGE=$(DOCKERCMD) image
DEPLOY_PATH=${PWD}/deployment
2025-01-07 12:20:00 +07:00
SETUP_PATH=${PWD}/setup
2025-01-06 11:42:15 +07:00
CONFIG=odoo.conf
2025-01-07 17:52:17 +07:00
ODOO_IMAGE=hub.nextzenos.com/nexterp/odoo
2025-01-08 00:25:28 +07:00
TAG := $(shell rev-parse --abbrev-ref HEAD)
2025-01-07 18:43:03 +07:00
CONTAINER_ID=odoo-${TAG}
2025-01-06 11:42:15 +07:00
install:
2025-01-07 14:51:42 +07:00
sudo apt -y update && \
2025-01-08 01:21:51 +07:00
sudo apt install -y build-essential python3-full python3-pip libldap2-dev libpq-dev libsasl2-dev
2025-01-07 17:52:17 +07:00
run_test_docker:
2025-01-07 22:51:33 +07:00
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 --stop-after-init --config=/etc/odoo/${CONFIG} --xmlrpc-port=8071 && \
2025-01-07 23:58:18 +07:00
sudo docker exec ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} drop testdb
2025-01-07 17:52:17 +07:00
run_test_local:
2025-01-07 21:00:53 +07:00
odoo-bin -i all_modules --log-level=test --test-enable -d testdb --stop-after-init --config=${CONFIG}
2025-01-07 17:52:17 +07:00
gen_config:
${PWD}/setup/init_config.sh ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID}
2025-01-07 21:56:00 +07:00
build_image:
2025-01-07 17:52:17 +07:00
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress plain --tag ${ODOO_IMAGE}:${TAG}
2025-01-07 18:31:57 +07:00
push_image:
2025-01-07 17:52:17 +07:00
$(DOCKER_PUSH) ${ODOO_IMAGE}:${TAG}
2025-01-07 18:31:57 +07:00
run_server_local:
2025-01-06 11:42:15 +07:00
${PYTHON} odoo-bin --config=${CONFIG}
2025-01-07 18:31:57 +07:00
run_server_docker:
2025-01-07 17:52:17 +07:00
@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
2025-01-08 00:43:31 +07:00
update_tag:
${SETUP_PATH}/update_tag.sh $(CURR_BRANCH)
2025-01-07 22:51:33 +07:00
restore_database:
2025-01-07 23:19:50 +07:00
@echo "Checking for backup.zip in container..."
@if sudo docker exec ${CONTAINER_ID} test -f /etc/odoo/backup/backup.zip; then \
echo "Restoring database from backup..."; \
2025-01-08 00:11:40 +07:00
sudo docker exec ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} load backup /etc/odoo/backup/backup.zip; \
2025-01-07 23:19:50 +07:00
else \
echo "Error: backup.zip not found in container. Aborting restore."; \
fi
2025-01-07 23:14:39 +07:00
2025-01-07 21:56:00 +07:00
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
2025-01-07 17:52:17 +07:00
clean_up:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \
echo "Container not found. Skipping"; \
else \
cd ${DEPLOY_PATH} &&\
2025-01-07 17:54:42 +07:00
${DOCKER_COMPOSE_CMD} down; \
2025-01-07 17:52:17 +07:00
fi
2025-01-07 18:05:22 +07:00
find "${DEPLOY_PATH}" -mindepth 1 -maxdepth 1 \
! -name "etc" \
! -name "addons" \
2025-01-07 22:51:33 +07:00
! -name "backup" \
2025-01-07 18:05:22 +07:00
! -name "*.sh" \
! -name "*.template" \
! -name "*.py" \
! -name "*.yml" \
-print0 | xargs -0 rm -rf {} && \
2025-01-10 08:37:03 +07:00
sudo rm -rf ${DEPLOY_PATH}/etc/*
2025-01-07 18:05:22 +07:00
2025-01-07 17:52:17 +07:00