Odoo18-Base/Makefile
hoangvv 1d4a711a35
Some checks failed
Setup Docker Action / setup_docker (3.12.7) (push) Has been skipped
Setup Native Action / setup_native (3.12.7) (push) Failing after 23s
add noninteractive
2025-01-14 18:11:23 +07:00

91 lines
3.3 KiB
Makefile

.SHELLFLAGS += ${SHELLFLAGS} -e
PWD = $(shell pwd)
UID = $(shell id -u)
GID = $(shell id -g)
PYTHON=python
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
SETUP_PATH=${PWD}/setup
CONFIG=odoo.conf
DOCKER_SERVER=hub.nextzenos.com
ORGANIZATION=nexterp
PROJECT := $(shell git remote get-url origin 2>/dev/null | sed 's/.*\/\([^\/]*\)\.git$$/\1/' || echo "odoo")
ODOO_IMAGE=${DOCKER_SERVER}/${ORGANIZATION}/$(PROJECT)
TAG := $(shell git rev-parse --abbrev-ref HEAD)
CONTAINER_ID=${PROJECT}-${TAG}
VERSION := community
ADDONS=${PWD}/addons,${PWD}/odoo/addons
install:
sudo DEBIAN_FRONTEND=noninteractive apt -y update && \
sudo DEBIAN_FRONTEND=noninteractive apt install -y build-essential python3-full python3-pip libldap2-dev libpq-dev libsasl2-dev && \
sudo pip install --no-input -r requirements.txt
gen_config:
${PWD}/setup/init_config.sh --native ${ADDONS}
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}
##### 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}
gen_config_docker:
${PWD}/setup/init_config.sh --docker ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID} ${VERSION}
build_image:
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress plain --tag ${ODOO_IMAGE}:${TAG}
push_image:
$(DOCKER_PUSH) ${ODOO_IMAGE}:${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
update_tag:
${SETUP_PATH}/update_tag.sh $(CURR_BRANCH)
restore_database:
@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..."; \
sudo docker exec ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} load backup /etc/odoo/backup/backup.zip; \
else \
echo "Error: backup.zip not found in container. Aborting restore."; \
fi
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" \
-print0 | sudo xargs -0 rm -rf {} && \
sudo rm -rf ${DEPLOY_PATH}/etc/*