diff --git a/.github/workflows/patch.yml b/.github/workflows/patch.yml index cd3f8d97aac..80325d2e087 100644 --- a/.github/workflows/patch.yml +++ b/.github/workflows/patch.yml @@ -119,6 +119,15 @@ jobs: git -C "apps/frappe" remote set-url upstream https://github.com/frappe/frappe.git git -C "apps/erpnext" remote set-url upstream https://github.com/frappe/erpnext.git + # Start every bench process except the background workers. If workers run during a + # migrate, they pick up the orphan-link cleanup jobs it enqueues and race its schema + # changes, which fails with MySQL 1412 "Table definition has changed". Redis and the + # other services stay up; the queued jobs simply wait and are harmless here. + function start_bench_without_workers() { + local procs + procs=$(awk -F: '/^[a-z_]+:/ && $1 !~ /worker/ {print $1}' ~/frappe-bench/Procfile) + honcho start -f ~/frappe-bench/Procfile $procs &>> ~/frappe-bench/bench_start.log & + } function update_to_version() { version=$1 @@ -138,7 +147,7 @@ jobs: rm -rf ~/frappe-bench/env bench -v setup env --python python$2 bench pip install -e ./apps/erpnext - bench start &>> ~/frappe-bench/bench_start.log & + start_bench_without_workers bench --site test_site migrate } @@ -155,7 +164,7 @@ jobs: rm -rf ~/frappe-bench/env bench -v setup env bench pip install -e ./apps/erpnext - bench start &>> ~/frappe-bench/bench_start.log & + start_bench_without_workers bench --site test_site migrate