From 23442017b33639e16fccea3fde8a92386050c02d Mon Sep 17 00:00:00 2001 From: gouki Date: Sun, 9 Aug 2026 18:49:06 +0000 Subject: [PATCH] =?UTF-8?q?fix(ci):=20Alpine/musl=20runner=20=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=94=B9=E7=94=A8=20Node=20musl=20=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=EF=BC=88glibc=20=E7=89=88=E6=97=A0=E6=B3=95=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E7=BC=93=E5=AD=98=E6=A0=A1=E9=AA=8C=E5=8A=A0?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/miniapp-preview.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/miniapp-preview.yml b/.gitea/workflows/miniapp-preview.yml index e1bd27a..5416dab 100644 --- a/.gitea/workflows/miniapp-preview.yml +++ b/.gitea/workflows/miniapp-preview.yml @@ -31,16 +31,24 @@ jobs: # 优先复用 runner 宿主机缓存的工具链(工作目录持久化) TOOLDIR="$RUNNER_WORKSPACE/.lunar-toolchain" mkdir -p "$TOOLDIR" - if [ -x "$TOOLDIR/node/bin/node" ]; then + if [ -x "$TOOLDIR/node/bin/node" ] && "$TOOLDIR/node/bin/node" --version >/dev/null 2>&1; then echo "复用缓存 Node 工具链" else - wget -q --tries=2 --timeout=60 -O "$TOOLDIR/node.tgz" \ - "https://nodejs.org/dist/v22.12.0/node-v22.12.0-linux-x64.tar.xz" \ - || wget -q --tries=2 --timeout=60 -O "$TOOLDIR/node.tgz" \ - "https://mirrors.aliyun.com/nodejs-release/v22.12.0/node-v22.12.0-linux-x64.tar.xz" - rm -rf "$TOOLDIR/node-v22.12.0-linux-x64" - tar -C "$TOOLDIR" -xJf "$TOOLDIR/node.tgz" - mv "$TOOLDIR/node-v22.12.0-linux-x64" "$TOOLDIR/node" + rm -rf "$TOOLDIR/node" "$TOOLDIR/node-v22.12.0-linux-x64" + # 探测 libc:Alpine(musl) 用 unofficial musl 构建,其余用官方 glibc 构建(tar.gz,busybox tar 不支持 xz) + if ldd --version 2>&1 | grep -qi musl || [ ! -e /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ]; then + NODE_DIST="node-v22.12.0-linux-x64-musl" + wget -q --tries=2 --timeout=120 -O "$TOOLDIR/node.tgz" \ + "https://unofficial-builds.nodejs.org/download/release/v22.12.0/$NODE_DIST.tar.gz" + else + NODE_DIST="node-v22.12.0-linux-x64" + wget -q --tries=2 --timeout=120 -O "$TOOLDIR/node.tgz" \ + "https://nodejs.org/dist/v22.12.0/$NODE_DIST.tar.gz" \ + || wget -q --tries=2 --timeout=120 -O "$TOOLDIR/node.tgz" \ + "https://mirrors.aliyun.com/nodejs-release/v22.12.0/$NODE_DIST.tar.gz" + fi + tar -C "$TOOLDIR" -xzf "$TOOLDIR/node.tgz" + mv "$TOOLDIR/$NODE_DIST" "$TOOLDIR/node" rm -f "$TOOLDIR/node.tgz" fi "$TOOLDIR/node/bin/node" --version