refactor: remove dbfilter(temp) add restore database native, download backup
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

This commit is contained in:
hoangvv 2025-01-16 09:38:47 +07:00
parent 878ec1f6ff
commit b38beff3de
6 changed files with 29 additions and 16 deletions

View File

@ -93,7 +93,7 @@ jobs:
- name: Restore Database - name: Restore Database
if: contains(github.event.head_commit.message, '@restore_db') if: contains(github.event.head_commit.message, '@restore_db')
run: make restore_database run: make restore_database_docker
- name: Run Tests - name: Run Tests
if: contains(github.event.head_commit.message, '@run_test') if: contains(github.event.head_commit.message, '@run_test')

View File

@ -52,7 +52,7 @@ jobs:
run: sleep 30s run: sleep 30s
- name: Restore Database - name: Restore Database
run: make restore_database run: make restore_database_docker
- name: Run Tests - name: Run Tests
run: make run_test_docker run: make run_test_docker

2
Jenkinsfile vendored
View File

@ -16,7 +16,7 @@ node('Node-Dev-100163') {
} }
stage('Start'){ stage('Start'){
sh 'make run_server_docker' sh 'make run_server_docker'
sh 'make restore_database' sh 'make restore_database_docker'
} }
stage('Testing') { stage('Testing') {
sh 'make run_test_docker' sh 'make run_test_docker'

View File

@ -23,24 +23,41 @@ CONTAINER_ID=${PROJECT}-${TAG}
VERSION := community VERSION := community
ADDONS=${PWD}/addons,${PWD}/odoo/addons ADDONS=${PWD}/addons,${PWD}/odoo/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
install: install:
sudo apt update -y && \ sudo apt update -y && \
sudo apt install -y python3-pip libldap2-dev libpq-dev libsasl2-dev postgresql-client && \ sudo apt install -y python3-pip libldap2-dev libpq-dev libsasl2-dev postgresql-client && \
${PIP} install --no-input -r requirements.txt --break-system-packages ${PIP} install --no-input -r requirements.txt --break-system-packages
gen_config: download_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: download_backup
${PWD}/setup/init_config.sh --native ${ADDONS} ${PWD}/setup/init_config.sh --native ${ADDONS}
run_server: run_server:
${PYTHON} odoo-bin --config=${CONFIG} ${PYTHON} odoo-bin --config=${CONFIG}
run_test: 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 --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} ${PYTHON} odoo-bin db --config=${CONFIG} drop testdb-${TAG}
restore_database:
@read -p "Enter the database name: " DBNAME; \
echo "Restoring database: $$DBNAME"; \
${PYTHON} odoo-bin db --config=${CONFIG} load $$DBNAME ${PWD}/deployment/backup/backup.zip
##### 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: gen_config_docker:
${PWD}/setup/init_config.sh --docker ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID} && \ $(MAKE) download_backup LINKDB=${BACKUP}
${SETUP_PATH}/download_backup.sh ${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} DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress plain --tag ${ODOO_IMAGE}:${TAG}
push_image: push_image:
@ -55,7 +72,7 @@ run_server_docker:
${DOCKER_COMPOSE_CMD} up -d ${DOCKER_COMPOSE_CMD} up -d
update_tag: update_tag:
${SETUP_PATH}/update_tag.sh $(CURR_BRANCH) ${SETUP_PATH}/update_tag.sh $(CURR_BRANCH)
restore_database: 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:
@if ! docker ps | grep -q "${CONTAINER_ID}"; then \ @if ! docker ps | grep -q "${CONTAINER_ID}"; then \

View File

@ -50,9 +50,8 @@ ColorReset() {
main() { main() {
DEPLOYMENT_DIR=$(pwd)/deployment DEPLOYMENT_DIR=$(pwd)/deployment
BACKUP_DIR="$DEPLOYMENT_DIR/backup" BACKUP_DIR="$DEPLOYMENT_DIR/backup"
BACKUP_FILE="$BACKUP_DIR/backup.zip"
DOWNLOAD_URL="$1" DOWNLOAD_URL="$1"
BACKUP_FILE="$BACKUP_DIR/$2"
# Check if the deployment and backup directories exist, create them if not # Check if the deployment and backup directories exist, create them if not
if [[ ! -d "$BACKUP_DIR" ]]; then if [[ ! -d "$BACKUP_DIR" ]]; then
echo "Backup directory does not exist. Creating: $BACKUP_DIR" echo "Backup directory does not exist. Creating: $BACKUP_DIR"
@ -78,9 +77,6 @@ main() {
Show 1 "Error: Backup file was not downloaded." Show 1 "Error: Backup file was not downloaded."
exit 1 exit 1
fi fi
# Execute the Docker command
Show 2 "Running Docker command to load the backup..."
} }
main "$@" main "$@"

View File

@ -33,7 +33,7 @@ def main():
parser.add_argument('--db_pass', type=str, help='') parser.add_argument('--db_pass', type=str, help='')
parser.add_argument('--deploy_path', type=str, help='') parser.add_argument('--deploy_path', type=str, help='')
parser.add_argument('--addons_path', type=str, help='') parser.add_argument('--addons_path', type=str, help='')
parser.add_argument('--db_filter', type=str, help='') # parser.add_argument('--db_filter', type=str, help='')
parser.add_argument('--db_port', type=int, help='') parser.add_argument('--db_port', type=int, help='')
parser.add_argument('--db_server', type=str, help='') parser.add_argument('--db_server', type=str, help='')
args = parser.parse_args() args = parser.parse_args()
@ -44,7 +44,7 @@ def main():
app_port = find_available_port(8069) app_port = find_available_port(8069)
addons_path = args.addons_path addons_path = args.addons_path
base_dir= args.deploy_path base_dir= args.deploy_path
db_filter= args.db_filter # db_filter= args.db_filter
# Copy template files # Copy template files
os.makedirs(f"{base_dir}/etc", exist_ok=True) os.makedirs(f"{base_dir}/etc", exist_ok=True)
color_log.Show(3,f"Copy {base_dir}/odoo.conf.template to {base_dir}/etc/odoo.conf") color_log.Show(3,f"Copy {base_dir}/odoo.conf.template to {base_dir}/etc/odoo.conf")
@ -59,7 +59,7 @@ def main():
config['options']['db_port'] = str(db_port) config['options']['db_port'] = str(db_port)
config['options']['addons_path'] = addons_path config['options']['addons_path'] = addons_path
config['options']['xmlrpc_port'] = str(app_port) config['options']['xmlrpc_port'] = str(app_port)
config['options']['dbfilter'] = str(db_filter) config['options']['dbfilter'] = ".*"
config['options']['proxy_mode'] = "True" config['options']['proxy_mode'] = "True"
with open(f'{base_dir}/odoo.conf', 'w') as configfile: with open(f'{base_dir}/odoo.conf', 'w') as configfile:
config.write(configfile) config.write(configfile)