From 3295c8070e7968884581b6215ea4cec3262c4109 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Sun, 21 Nov 2021 16:23:32 +0530 Subject: [PATCH 1/8] fix: change unpriviliged nginx port from 80 to 8080 --- build/frappe-nginx/docker-entrypoint.sh | 5 ++++- build/frappe-nginx/nginx-default.conf.template | 2 +- docker-compose.yml | 2 +- docs/docker-swarm.md | 2 +- installation/erpnext-publish.yml | 2 +- installation/frappe-postgresql/docker-compose.yml | 2 +- installation/frappe-publish.yml | 2 +- tests/pwd.yml | 2 +- 8 files changed, 11 insertions(+), 8 deletions(-) diff --git a/build/frappe-nginx/docker-entrypoint.sh b/build/frappe-nginx/docker-entrypoint.sh index 0be9232e..976c4704 100755 --- a/build/frappe-nginx/docker-entrypoint.sh +++ b/build/frappe-nginx/docker-entrypoint.sh @@ -31,6 +31,8 @@ touch /var/www/html/sites/.build -r "$(ls -td /assets/* | head -n 1)" [[ -z "${HTTP_HOST}" ]] && HTTP_HOST="\$http_host" +[[ -z "${WEB_PORT}" ]] && WEB_PORT="8080" + [[ -z "${SKIP_NGINX_TEMPLATE_GENERATION}" ]] && SKIP_NGINX_TEMPLATE_GENERATION='0' if [[ ${SKIP_NGINX_TEMPLATE_GENERATION} == 1 ]]; then @@ -47,7 +49,8 @@ else ${UPSTREAM_REAL_IP_RECURSIVE} ${FRAPPE_SITE_NAME_HEADER} ${HTTP_HOST} - ${UPSTREAM_REAL_IP_HEADER}' \ + ${UPSTREAM_REAL_IP_HEADER} + ${WEB_PORT}' \ /etc/nginx/conf.d/default.conf fi diff --git a/build/frappe-nginx/nginx-default.conf.template b/build/frappe-nginx/nginx-default.conf.template index c3d90614..c3ce9b9f 100644 --- a/build/frappe-nginx/nginx-default.conf.template +++ b/build/frappe-nginx/nginx-default.conf.template @@ -13,7 +13,7 @@ map $http_x_forwarded_proto $proxy_x_forwarded_proto { } server { - listen 80; + listen ${WEB_PORT}; server_name $http_host; root /var/www/html; diff --git a/docker-compose.yml b/docker-compose.yml index 5ca8569b..398c7093 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,7 +44,7 @@ services: - "traefik.http.routers.erpnext-nginx.rule=Host(${SITES})" - "${ENTRYPOINT_LABEL}" - "${CERT_RESOLVER_LABEL}" - - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=80" + - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=8080" volumes: - sites-vol:/var/www/html/sites:rw - assets-vol:/assets:rw diff --git a/docs/docker-swarm.md b/docs/docker-swarm.md index f415e9ee..692d5118 100644 --- a/docs/docker-swarm.md +++ b/docs/docker-swarm.md @@ -167,7 +167,7 @@ services: - "traefik.http.routers.erpnext-nginx-https.entrypoints=https" - "traefik.http.routers.erpnext-nginx-https.tls=true" - "traefik.http.routers.erpnext-nginx-https.tls.certresolver=le" - - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=80" + - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=8080" erpnext-python: image: frappe/erpnext-worker:${ERPNEXT_VERSION?Variable ERPNEXT_VERSION not set} diff --git a/installation/erpnext-publish.yml b/installation/erpnext-publish.yml index 6975442a..130c52b6 100644 --- a/installation/erpnext-publish.yml +++ b/installation/erpnext-publish.yml @@ -3,4 +3,4 @@ version: "3" services: erpnext-nginx: ports: - - "80:80" + - "80:8080" diff --git a/installation/frappe-postgresql/docker-compose.yml b/installation/frappe-postgresql/docker-compose.yml index 8f479aa2..c36bdb05 100644 --- a/installation/frappe-postgresql/docker-compose.yml +++ b/installation/frappe-postgresql/docker-compose.yml @@ -42,7 +42,7 @@ services: - "traefik.http.routers.frappe-nginx.rule=Host(${SITES})" - "${ENTRYPOINT_LABEL}" - "${CERT_RESOLVER_LABEL}" - - "traefik.http.services.frappe-nginx.loadbalancer.server.port=80" + - "traefik.http.services.frappe-nginx.loadbalancer.server.port=8080" volumes: - sites-vol:/var/www/html/sites:rw - assets-vol:/assets:rw diff --git a/installation/frappe-publish.yml b/installation/frappe-publish.yml index a3f4caa9..f573cb79 100644 --- a/installation/frappe-publish.yml +++ b/installation/frappe-publish.yml @@ -3,4 +3,4 @@ version: "3" services: frappe-nginx: ports: - - "80:80" + - "80:8080" diff --git a/tests/pwd.yml b/tests/pwd.yml index d4cb3550..339900cc 100644 --- a/tests/pwd.yml +++ b/tests/pwd.yml @@ -37,7 +37,7 @@ services: - "traefik.http.middlewares.erpnext-nginx.headers.customrequestheaders.Host=erpnext-nginx" - "traefik.http.routers.erpnext-nginx.middlewares=erpnext-nginx" - "traefik.http.routers.erpnext-nginx.entrypoints=web" - - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=80" + - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=8080" volumes: - sites-vol:/var/www/html/sites:rw - assets-vol:/assets:rw From 318f65170ae070edb20da7ccb890b4f8211cffc2 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Sun, 21 Nov 2021 21:39:19 +0530 Subject: [PATCH 2/8] ci: fix test volume permissions --- installation/docker-compose-custom.yml | 10 ++++++++++ installation/docker-compose-erpnext.yml | 10 ++++++++++ installation/docker-compose-frappe.yml | 12 +++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/installation/docker-compose-custom.yml b/installation/docker-compose-custom.yml index 9dacfd91..24a7ac9b 100644 --- a/installation/docker-compose-custom.yml +++ b/installation/docker-compose-custom.yml @@ -20,6 +20,7 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short + - fix-vol-permissions links: - [app]-python - frappe-socketio @@ -117,6 +118,15 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw + fix-vol-permissions: + image: [app]-worker + user: root + command: chown -R 1000:1000 /sites /assets /logs + volumes: + - sites-vol:/sites + - assets-vol:/assets + - logs-vol:/logs + volumes: assets-vol: sites-vol: diff --git a/installation/docker-compose-erpnext.yml b/installation/docker-compose-erpnext.yml index 1f769dd6..a6dca033 100644 --- a/installation/docker-compose-erpnext.yml +++ b/installation/docker-compose-erpnext.yml @@ -18,6 +18,7 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short + - fix-vol-permissions links: - erpnext-python - frappe-socketio @@ -114,6 +115,15 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw + fix-vol-permissions: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + user: root + command: chown -R 1000:1000 /sites /assets /logs + volumes: + - sites-vol:/sites + - assets-vol:/assets + - logs-vol:/logs + volumes: assets-vol: sites-vol: diff --git a/installation/docker-compose-frappe.yml b/installation/docker-compose-frappe.yml index afd661bf..6128990e 100644 --- a/installation/docker-compose-frappe.yml +++ b/installation/docker-compose-frappe.yml @@ -18,6 +18,7 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short + - fix-vol-permissions links: - frappe-python - frappe-socketio @@ -114,7 +115,16 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw + fix-vol-permissions: + image: frappe/frappe-worker:${ERPNEXT_VERSION} + user: root + command: chown -R 1000:1000 /sites /assets /logs + volumes: + - sites-vol:/sites + - assets-vol:/assets + - logs-vol:/logs + volumes: assets-vol: sites-vol: - logs-vol: \ No newline at end of file + logs-vol: From cb2943bdf733677ae9b76a53e21be1e36cbd4cc4 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Sun, 21 Nov 2021 22:37:22 +0530 Subject: [PATCH 3/8] ci: reload volume permissions --- tests/test-erpnext.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test-erpnext.sh b/tests/test-erpnext.sh index 343326f9..75df4543 100755 --- a/tests/test-erpnext.sh +++ b/tests/test-erpnext.sh @@ -24,6 +24,7 @@ FRAPPE_VERSION=$FRAPPE_VERSION ERPNEXT_VERSION="test" \ -f installation/erpnext-publish.yml \ up -d +docker restart test_erpnext_fix-vol-permissions_1 test_erpnext_erpnext-nginx_1 print_group Create site docker run \ --rm \ From 4f7108c3a821acfce04719aea7c33972a0198540 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Mon, 22 Nov 2021 05:22:12 +0530 Subject: [PATCH 4/8] ci: check connections before curl --- tests/functions.sh | 60 +++++++++++++++++++++++++++++++++++++++ tests/integration-test.sh | 60 --------------------------------------- tests/test-erpnext.sh | 6 +++- 3 files changed, 65 insertions(+), 61 deletions(-) diff --git a/tests/functions.sh b/tests/functions.sh index 8453c499..8507cf95 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -24,3 +24,63 @@ ping_site() { exit 1 fi } + +docker_compose_with_args() { + # shellcheck disable=SC2068 + docker-compose \ + -p $project_name \ + -f installation/docker-compose-common.yml \ + -f installation/docker-compose-frappe.yml \ + -f installation/frappe-publish.yml \ + $@ +} + +check_migration_complete() { + print_group Check migration + + container_id=$(docker_compose_with_args ps -q frappe-python) + cmd="docker logs ${container_id} 2>&1 | grep 'Starting gunicorn' || echo ''" + worker_log=$(eval "$cmd") + INCREMENT=0 + + while [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -lt 120 ]]; do + sleep 3 + ((INCREMENT = INCREMENT + 1)) + echo "Wait for migration to complete..." + worker_log=$(eval "$cmd") + if [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -eq 120 ]]; then + echo Migration timeout + docker logs "${container_id}" + exit 1 + fi + done + + echo Migration Log + docker logs "${container_id}" +} + +check_health() { + print_group Loop health check + + docker run --name frappe_doctor \ + -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ + --network "${project_name}_default" \ + frappe/frappe-worker:edge doctor || true + + cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' + doctor_log=$(eval "$cmd") + INCREMENT=0 + + while [[ -z "${doctor_log}" && ${INCREMENT} -lt 60 ]]; do + sleep 1 + ((INCREMENT = INCREMENT + 1)) + container=$(docker start frappe_doctor) + echo "Restarting ${container}..." + doctor_log=$(eval "$cmd") + + if [[ ${INCREMENT} -eq 60 ]]; then + docker logs "${container}" + exit 1 + fi + done +} diff --git a/tests/integration-test.sh b/tests/integration-test.sh index af7a8831..44c6e1e7 100755 --- a/tests/integration-test.sh +++ b/tests/integration-test.sh @@ -6,66 +6,6 @@ source tests/functions.sh project_name=frappe_bench_00 -docker_compose_with_args() { - # shellcheck disable=SC2068 - docker-compose \ - -p $project_name \ - -f installation/docker-compose-common.yml \ - -f installation/docker-compose-frappe.yml \ - -f installation/frappe-publish.yml \ - $@ -} - -check_migration_complete() { - print_group Check migration - - container_id=$(docker_compose_with_args ps -q frappe-python) - cmd="docker logs ${container_id} 2>&1 | grep 'Starting gunicorn' || echo ''" - worker_log=$(eval "$cmd") - INCREMENT=0 - - while [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -lt 120 ]]; do - sleep 3 - ((INCREMENT = INCREMENT + 1)) - echo "Wait for migration to complete..." - worker_log=$(eval "$cmd") - if [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -eq 120 ]]; then - echo Migration timeout - docker logs "${container_id}" - exit 1 - fi - done - - echo Migration Log - docker logs "${container_id}" -} - -check_health() { - print_group Loop health check - - docker run --name frappe_doctor \ - -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ - --network "${project_name}_default" \ - frappe/frappe-worker:edge doctor || true - - cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' - doctor_log=$(eval "$cmd") - INCREMENT=0 - - while [[ -z "${doctor_log}" && ${INCREMENT} -lt 60 ]]; do - sleep 1 - ((INCREMENT = INCREMENT + 1)) - container=$(docker start frappe_doctor) - echo "Restarting ${container}..." - doctor_log=$(eval "$cmd") - - if [[ ${INCREMENT} -eq 60 ]]; then - docker logs "${container}" - exit 1 - fi - done -} - # Initial group echo ::group::Setup .env cp env-example .env diff --git a/tests/test-erpnext.sh b/tests/test-erpnext.sh index 75df4543..f4a848c6 100755 --- a/tests/test-erpnext.sh +++ b/tests/test-erpnext.sh @@ -24,7 +24,6 @@ FRAPPE_VERSION=$FRAPPE_VERSION ERPNEXT_VERSION="test" \ -f installation/erpnext-publish.yml \ up -d -docker restart test_erpnext_fix-vol-permissions_1 test_erpnext_erpnext-nginx_1 print_group Create site docker run \ --rm \ @@ -34,5 +33,10 @@ docker run \ --network ${project_name}_default \ frappe/erpnext-worker:test new +docker restart ${project_name}_erpnext-nginx_1 +docker restart ${project_name}_fix-vol-permissions_1 + +check_health + ping_site rm .env From 8fc3fbb27e037e0838b255a718abac513d5dc3c3 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Mon, 22 Nov 2021 05:36:59 +0530 Subject: [PATCH 5/8] ci: fix lint --- tests/functions.sh | 14 ++------------ tests/integration-test.sh | 18 ++++++++++++++---- tests/test-erpnext.sh | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/functions.sh b/tests/functions.sh index 8507cf95..132005da 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -25,16 +25,6 @@ ping_site() { fi } -docker_compose_with_args() { - # shellcheck disable=SC2068 - docker-compose \ - -p $project_name \ - -f installation/docker-compose-common.yml \ - -f installation/docker-compose-frappe.yml \ - -f installation/frappe-publish.yml \ - $@ -} - check_migration_complete() { print_group Check migration @@ -63,8 +53,8 @@ check_health() { print_group Loop health check docker run --name frappe_doctor \ - -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ - --network "${project_name}_default" \ + -v "$1_sites-vol:/home/frappe/frappe-bench/sites" \ + --network "$1_default" \ frappe/frappe-worker:edge doctor || true cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' diff --git a/tests/integration-test.sh b/tests/integration-test.sh index 44c6e1e7..2f105167 100755 --- a/tests/integration-test.sh +++ b/tests/integration-test.sh @@ -6,6 +6,16 @@ source tests/functions.sh project_name=frappe_bench_00 +docker_compose_with_args() { + # shellcheck disable=SC2068 + docker-compose \ + -p $project_name \ + -f installation/docker-compose-common.yml \ + -f installation/docker-compose-frappe.yml \ + -f installation/frappe-publish.yml \ + $@ +} + # Initial group echo ::group::Setup .env cp env-example .env @@ -28,7 +38,7 @@ docker run \ --network ${project_name}_default \ postgres:11.8 -check_health +check_health $project_name print_group "Create new site " SITE_NAME=test.localhost @@ -123,7 +133,7 @@ docker_compose_with_args stop docker container prune -f && docker volume prune -f docker_compose_with_args up -d -check_health +check_health $project_name print_group Restore backup from S3 docker run \ @@ -139,7 +149,7 @@ docker run \ --network ${project_name}_default \ frappe/frappe-worker:edge restore-backup -check_health +check_health $project_name ping_site SITE_NAME=$PG_SITE_NAME ping_site @@ -153,7 +163,7 @@ docker run \ --network ${project_name}_default \ frappe/frappe-worker:edge new -check_health +check_health $project_name SITE_NAME=$EDGE_SITE_NAME ping_site print_group Migrate edge site diff --git a/tests/test-erpnext.sh b/tests/test-erpnext.sh index f4a848c6..839dfbeb 100755 --- a/tests/test-erpnext.sh +++ b/tests/test-erpnext.sh @@ -36,7 +36,7 @@ docker run \ docker restart ${project_name}_erpnext-nginx_1 docker restart ${project_name}_fix-vol-permissions_1 -check_health +check_health $project_name ping_site rm .env From d68bcdc8bd9a9b7c115aa61500f7c5e5b5077615 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Mon, 22 Nov 2021 06:14:30 +0530 Subject: [PATCH 6/8] ci: output erpnext-nginx container logs --- docker-compose.yml | 9 +++++++++ tests/test-erpnext.sh | 3 +++ 2 files changed, 12 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 398c7093..5b050973 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -163,6 +163,15 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw + fix-vol-permissions: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + user: root + command: chown -R 1000:1000 /sites /assets /logs + volumes: + - sites-vol:/sites + - assets-vol:/assets + - logs-vol:/logs + volumes: mariadb-vol: redis-cache-vol: diff --git a/tests/test-erpnext.sh b/tests/test-erpnext.sh index 839dfbeb..fc0eca48 100755 --- a/tests/test-erpnext.sh +++ b/tests/test-erpnext.sh @@ -38,5 +38,8 @@ docker restart ${project_name}_fix-vol-permissions_1 check_health $project_name +# TODO: remove when pr ci run successful +docker logs ${project_name}_erpnext-nginx_1 + ping_site rm .env From 91648299bace49d9190c6e914c4738092e990c88 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Mon, 22 Nov 2021 13:17:17 +0530 Subject: [PATCH 7/8] ci: fix test and revert yamls --- docker-compose.yml | 9 --------- installation/docker-compose-custom.yml | 10 ---------- installation/docker-compose-erpnext.yml | 10 ---------- installation/docker-compose-frappe.yml | 10 ---------- tests/functions.sh | 4 ++-- tests/integration-test.sh | 8 ++++---- tests/test-erpnext.sh | 16 ++++++++-------- 7 files changed, 14 insertions(+), 53 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5b050973..398c7093 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -163,15 +163,6 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw - fix-vol-permissions: - image: frappe/erpnext-worker:${ERPNEXT_VERSION} - user: root - command: chown -R 1000:1000 /sites /assets /logs - volumes: - - sites-vol:/sites - - assets-vol:/assets - - logs-vol:/logs - volumes: mariadb-vol: redis-cache-vol: diff --git a/installation/docker-compose-custom.yml b/installation/docker-compose-custom.yml index 24a7ac9b..9dacfd91 100644 --- a/installation/docker-compose-custom.yml +++ b/installation/docker-compose-custom.yml @@ -20,7 +20,6 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short - - fix-vol-permissions links: - [app]-python - frappe-socketio @@ -118,15 +117,6 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw - fix-vol-permissions: - image: [app]-worker - user: root - command: chown -R 1000:1000 /sites /assets /logs - volumes: - - sites-vol:/sites - - assets-vol:/assets - - logs-vol:/logs - volumes: assets-vol: sites-vol: diff --git a/installation/docker-compose-erpnext.yml b/installation/docker-compose-erpnext.yml index a6dca033..1f769dd6 100644 --- a/installation/docker-compose-erpnext.yml +++ b/installation/docker-compose-erpnext.yml @@ -18,7 +18,6 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short - - fix-vol-permissions links: - erpnext-python - frappe-socketio @@ -115,15 +114,6 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw - fix-vol-permissions: - image: frappe/erpnext-worker:${ERPNEXT_VERSION} - user: root - command: chown -R 1000:1000 /sites /assets /logs - volumes: - - sites-vol:/sites - - assets-vol:/assets - - logs-vol:/logs - volumes: assets-vol: sites-vol: diff --git a/installation/docker-compose-frappe.yml b/installation/docker-compose-frappe.yml index 6128990e..5c64424e 100644 --- a/installation/docker-compose-frappe.yml +++ b/installation/docker-compose-frappe.yml @@ -18,7 +18,6 @@ services: - frappe-worker-default - frappe-worker-long - frappe-worker-short - - fix-vol-permissions links: - frappe-python - frappe-socketio @@ -115,15 +114,6 @@ services: - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw - fix-vol-permissions: - image: frappe/frappe-worker:${ERPNEXT_VERSION} - user: root - command: chown -R 1000:1000 /sites /assets /logs - volumes: - - sites-vol:/sites - - assets-vol:/assets - - logs-vol:/logs - volumes: assets-vol: sites-vol: diff --git a/tests/functions.sh b/tests/functions.sh index 132005da..55880e12 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -53,8 +53,8 @@ check_health() { print_group Loop health check docker run --name frappe_doctor \ - -v "$1_sites-vol:/home/frappe/frappe-bench/sites" \ - --network "$1_default" \ + -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ + --network "${project_name}_default" \ frappe/frappe-worker:edge doctor || true cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' diff --git a/tests/integration-test.sh b/tests/integration-test.sh index 2f105167..35eabe26 100755 --- a/tests/integration-test.sh +++ b/tests/integration-test.sh @@ -38,7 +38,7 @@ docker run \ --network ${project_name}_default \ postgres:11.8 -check_health $project_name +check_health print_group "Create new site " SITE_NAME=test.localhost @@ -133,7 +133,7 @@ docker_compose_with_args stop docker container prune -f && docker volume prune -f docker_compose_with_args up -d -check_health $project_name +check_health print_group Restore backup from S3 docker run \ @@ -149,7 +149,7 @@ docker run \ --network ${project_name}_default \ frappe/frappe-worker:edge restore-backup -check_health $project_name +check_health ping_site SITE_NAME=$PG_SITE_NAME ping_site @@ -163,7 +163,7 @@ docker run \ --network ${project_name}_default \ frappe/frappe-worker:edge new -check_health $project_name +check_health SITE_NAME=$EDGE_SITE_NAME ping_site print_group Migrate edge site diff --git a/tests/test-erpnext.sh b/tests/test-erpnext.sh index fc0eca48..a22d999b 100755 --- a/tests/test-erpnext.sh +++ b/tests/test-erpnext.sh @@ -24,6 +24,14 @@ FRAPPE_VERSION=$FRAPPE_VERSION ERPNEXT_VERSION="test" \ -f installation/erpnext-publish.yml \ up -d +docker run \ + --rm \ + --user root \ + -v ${project_name}_sites-vol:/sites \ + -v ${project_name}_assets-vol:/assets \ + -v ${project_name}_logs-vol:/logs \ + frappe/erpnext-worker:test chown -R 1000:1000 /logs /sites /assets + print_group Create site docker run \ --rm \ @@ -33,13 +41,5 @@ docker run \ --network ${project_name}_default \ frappe/erpnext-worker:test new -docker restart ${project_name}_erpnext-nginx_1 -docker restart ${project_name}_fix-vol-permissions_1 - -check_health $project_name - -# TODO: remove when pr ci run successful -docker logs ${project_name}_erpnext-nginx_1 - ping_site rm .env From 1427907a82a08d12fb0a03f199b714cce7c210f5 Mon Sep 17 00:00:00 2001 From: Revant Nandgaonkar Date: Mon, 22 Nov 2021 13:22:09 +0530 Subject: [PATCH 8/8] ci: revert shell script functions --- tests/functions.sh | 50 --------------------------------------- tests/integration-test.sh | 50 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/tests/functions.sh b/tests/functions.sh index 55880e12..8453c499 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -24,53 +24,3 @@ ping_site() { exit 1 fi } - -check_migration_complete() { - print_group Check migration - - container_id=$(docker_compose_with_args ps -q frappe-python) - cmd="docker logs ${container_id} 2>&1 | grep 'Starting gunicorn' || echo ''" - worker_log=$(eval "$cmd") - INCREMENT=0 - - while [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -lt 120 ]]; do - sleep 3 - ((INCREMENT = INCREMENT + 1)) - echo "Wait for migration to complete..." - worker_log=$(eval "$cmd") - if [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -eq 120 ]]; then - echo Migration timeout - docker logs "${container_id}" - exit 1 - fi - done - - echo Migration Log - docker logs "${container_id}" -} - -check_health() { - print_group Loop health check - - docker run --name frappe_doctor \ - -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ - --network "${project_name}_default" \ - frappe/frappe-worker:edge doctor || true - - cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' - doctor_log=$(eval "$cmd") - INCREMENT=0 - - while [[ -z "${doctor_log}" && ${INCREMENT} -lt 60 ]]; do - sleep 1 - ((INCREMENT = INCREMENT + 1)) - container=$(docker start frappe_doctor) - echo "Restarting ${container}..." - doctor_log=$(eval "$cmd") - - if [[ ${INCREMENT} -eq 60 ]]; then - docker logs "${container}" - exit 1 - fi - done -} diff --git a/tests/integration-test.sh b/tests/integration-test.sh index 35eabe26..af7a8831 100755 --- a/tests/integration-test.sh +++ b/tests/integration-test.sh @@ -16,6 +16,56 @@ docker_compose_with_args() { $@ } +check_migration_complete() { + print_group Check migration + + container_id=$(docker_compose_with_args ps -q frappe-python) + cmd="docker logs ${container_id} 2>&1 | grep 'Starting gunicorn' || echo ''" + worker_log=$(eval "$cmd") + INCREMENT=0 + + while [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -lt 120 ]]; do + sleep 3 + ((INCREMENT = INCREMENT + 1)) + echo "Wait for migration to complete..." + worker_log=$(eval "$cmd") + if [[ ${worker_log} != *"Starting gunicorn"* && ${INCREMENT} -eq 120 ]]; then + echo Migration timeout + docker logs "${container_id}" + exit 1 + fi + done + + echo Migration Log + docker logs "${container_id}" +} + +check_health() { + print_group Loop health check + + docker run --name frappe_doctor \ + -v "${project_name}_sites-vol:/home/frappe/frappe-bench/sites" \ + --network "${project_name}_default" \ + frappe/frappe-worker:edge doctor || true + + cmd='docker logs frappe_doctor | grep "Health check successful" || echo ""' + doctor_log=$(eval "$cmd") + INCREMENT=0 + + while [[ -z "${doctor_log}" && ${INCREMENT} -lt 60 ]]; do + sleep 1 + ((INCREMENT = INCREMENT + 1)) + container=$(docker start frappe_doctor) + echo "Restarting ${container}..." + doctor_log=$(eval "$cmd") + + if [[ ${INCREMENT} -eq 60 ]]; then + docker logs "${container}" + exit 1 + fi + done +} + # Initial group echo ::group::Setup .env cp env-example .env