77 lines
5.0 KiB
Diff
77 lines
5.0 KiB
Diff
From 6462b1b8a15449da515bafdee4826ee7253c4eae Mon Sep 17 00:00:00 2001
|
|
From: HenryDu8133 <813367384@qq.com>
|
|
Date: Fri, 11 Sep 2026 23:35:12 +0800
|
|
Subject: [PATCH 37/58] fix(ci): embed python scripts as base64 to avoid YAML
|
|
block scalar + preflight indentation conflict - resolves TASK-63 build-image
|
|
IndentationError: unexpected indent
|
|
|
|
---
|
|
.gitea/workflows/deploy.yml | 42 ++++---------------------------------
|
|
1 file changed, 4 insertions(+), 38 deletions(-)
|
|
|
|
diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml
|
|
index 87c6524..d0c7ad4 100644
|
|
--- a/.gitea/workflows/deploy.yml
|
|
+++ b/.gitea/workflows/deploy.yml
|
|
@@ -105,30 +105,10 @@ jobs:
|
|
# 找 Node 22 最新 patch 版本号:不用 GitHub API,走 npmmirror 的 index.json 解析
|
|
NODE_VER="${NODE_VERSION_FALLBACK}"
|
|
if command -v python3 >/dev/null 2>&1; then
|
|
- # 注意:不使用 heredoc,避免 PY_MAJOR 前导缩进 0 导致 YAML 块标量提前结束解析失败
|
|
- PY_NODE_CODE=' import json, re, sys
|
|
- try:
|
|
- data = json.load(sys.stdin)
|
|
- except Exception:
|
|
- data = []
|
|
- target = sys.argv[1] if len(sys.argv) > 1 else "22"
|
|
- best_triple = None
|
|
- best_v = ""
|
|
- for d in data:
|
|
- v = d.get("version", "")
|
|
- m = re.match(r"^v(\d+)\.(\d+)\.(\d+)", v)
|
|
- if not m: continue
|
|
- major, minor, patch = m.groups()
|
|
- if major != target: continue
|
|
- triple = (int(minor), int(patch))
|
|
- if (best_triple is None) or (triple > best_triple):
|
|
- best_triple = triple
|
|
- best_v = f"{major}.{minor}.{patch}"
|
|
- if best_v:
|
|
- print(best_v)'
|
|
+ PY_NODE_B64="aW1wb3J0IGpzb24sIHJlLCBzeXMKdHJ5OgogICAgZGF0YSA9IGpzb24ubG9hZChzeXMuc3RkaW4pCmV4Y2VwdCBFeGNlcHRpb246CiAgICBkYXRhID0gW10KdGFyZ2V0ID0gc3lzLmFyZ3ZbMV0gaWYgbGVuKHN5cy5hcmd2KSA+IDEgZWxzZSAiMjIiCmJlc3RfdHJpcGxlID0gTm9uZQpiZXN0X3YgPSAiIgpmb3IgZCBpbiBkYXRhOgogICAgdiA9IGQuZ2V0KCJ2ZXJzaW9uIiwgIiIpCiAgICBtID0gcmUubWF0Y2gociJedihcZCspXC4oXGQrKVwuKFxkKykiLCB2KQogICAgaWYgbm90IG06IGNvbnRpbnVlCiAgICBtYWpvciwgbWlub3IsIHBhdGNoID0gbS5ncm91cHMoKQogICAgaWYgbWFqb3IgIT0gdGFyZ2V0OiBjb250aW51ZQogICAgdHJpcGxlID0gKGludChtaW5vciksIGludChwYXRjaCkpCiAgICBpZiAoYmVzdF90cmlwbGUgaXMgTm9uZSkgb3IgKHRyaXBsZSA+IGJlc3RfdHJpcGxlKToKICAgICAgICBiZXN0X3RyaXBsZSA9IHRyaXBsZQogICAgICAgIGJlc3RfdiA9IGYie21ham9yfS57bWlub3J9LntwYXRjaH0iCmlmIGJlc3RfdjoKICAgIHByaW50KGJlc3Rfdik="
|
|
REMOTE_LATEST=""
|
|
REMOTE_LATEST="$(curl -fsSL --max-time 20 "${NODE_MIRROR_PRIMARY}/index.json" 2>/dev/null \
|
|
- | printf '%s\n' "$PY_NODE_CODE" | python3 - "${NODE_MAJOR}" || true)"
|
|
+ | printf '%s' "$PY_NODE_B64" | base64 -d | python3 - "${NODE_MAJOR}" || true)"
|
|
if [ -n "$REMOTE_LATEST" ]; then
|
|
NODE_VER="$REMOTE_LATEST"
|
|
echo "npmmirror 查得 Node 22 latest: v${NODE_VER}"
|
|
@@ -277,22 +257,8 @@ jobs:
|
|
if [ -f "${DOCKER_DAEMON_CONF}" ]; then
|
|
OLD_MIRRORS_JSON="$(sudo cat "${DOCKER_DAEMON_CONF}" 2>/dev/null || echo "{}")"
|
|
fi
|
|
- PY_CODE=' import json, sys
|
|
- try:
|
|
- data = json.loads(sys.argv[1] or "{}")
|
|
- except Exception:
|
|
- data = {}
|
|
- mirrors_envs = [m for m in sys.argv[2:5] if m]
|
|
- existing = data.get("registry-mirrors") or []
|
|
- if isinstance(existing, list):
|
|
- combined = list(dict.fromkeys([*mirrors_envs, *existing]))
|
|
- else:
|
|
- combined = mirrors_envs
|
|
- if combined:
|
|
- data["registry-mirrors"] = combined
|
|
- data.setdefault("log-driver", "json-file")
|
|
- print(json.dumps(data, ensure_ascii=False, indent=2))'
|
|
- NEW_DAEMON_JSON="$(printf '%s\n' "$PY_CODE" | python3 - "$OLD_MIRRORS_JSON" \
|
|
+ PY_DAEMON_B64="aW1wb3J0IGpzb24sIHN5cwp0cnk6CiAgICBkYXRhID0ganNvbi5sb2FkcyhzeXMuYXJndlsxXSBvciAie30iKQpleGNlcHQgRXhjZXB0aW9uOgogICAgZGF0YSA9IHt9Cm1pcnJvcnNfZW52cyA9IFttIGZvciBtIGluIHN5cy5hcmd2WzI6NV0gaWYgbV0KZXhpc3RpbmcgPSBkYXRhLmdldCgicmVnaXN0cnktbWlycm9ycyIpIG9yIFtdCmlmIGlzaW5zdGFuY2UoZXhpc3RpbmcsIGxpc3QpOgogICAgY29tYmluZWQgPSBsaXN0KGRpY3QuZnJvbWtleXMoWyptaXJyb3JzX2VudnMsICpleGlzdGluZ10pKQplbHNlOgogICAgY29tYmluZWQgPSBtaXJyb3JzX2VudnMKaWYgY29tYmluZWQ6CiAgICBkYXRhWyJyZWdpc3RyeS1taXJyb3JzIl0gPSBjb21iaW5lZApkYXRhLnNldGRlZmF1bHQoImxvZy1kcml2ZXIiLCAianNvbi1maWxlIikKcHJpbnQoanNvbi5kdW1wcyhkYXRhLCBlbnN1cmVfYXNjaWk9RmFsc2UsIGluZGVudD0yKSk="
|
|
+ NEW_DAEMON_JSON="$(printf '%s' "$PY_DAEMON_B64" | base64 -d | python3 - "$OLD_MIRRORS_JSON" \
|
|
"${DOCKER_REGISTRY_MIRROR_1}" "${DOCKER_REGISTRY_MIRROR_2}" "${DOCKER_REGISTRY_MIRROR_3}")"
|
|
echo "${NEW_DAEMON_JSON}" | sudo tee "${DOCKER_DAEMON_CONF}" >/dev/null
|
|
echo "[Docker] daemon.json 已注入 registry-mirrors:"
|
|
--
|
|
2.45.1.windows.1
|
|
|