现象:10-20 12:18 / 12:19 两轮构建都失败在第一步 apk add: fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main: Permission denied(每个源卡满 60s) ERROR: unable to select packages: curl (no such package) 后续 clone / 构建 / 打包 / 建档全部被 skip,代码根本没被编译到。 同一时刻本机访问该源是 200,说明是 runner 容器侧网络受限。 改法:装包前用 busybox wget 依次探测 dl-cdn / 阿里云 / 腾讯云 / 华为云, 取第一个可达源替换 /etc/apk/repositories 后再 apk add;四源全不可达则显式报错退出, 不再以 120 秒超时的形式掩盖真实原因。
This commit is contained in:
@@ -25,7 +25,22 @@ jobs:
|
||||
options: --network infra-infra-net
|
||||
steps:
|
||||
- name: 安装 git / curl(alpine)
|
||||
run: apk add --no-cache git curl
|
||||
run: |
|
||||
set -e
|
||||
# runner 容器偶发拉不到公网 apk 源(dl-cdn.alpinelinux.org 报 Permission denied 并卡满 60s×2),
|
||||
# 这里先按可达性挑一个能通的镜像源再装包,避免整条流水线卡死在第一步、后续步骤全被 skip
|
||||
chosen=""
|
||||
for host in dl-cdn.alpinelinux.org mirrors.aliyun.com mirrors.cloud.tencent.com mirrors.huaweicloud.com; do
|
||||
if wget -q -T 6 -O /dev/null "https://${host}/alpine/v3.20/main/x86_64/APKINDEX.tar.gz"; then
|
||||
chosen="${host}"
|
||||
break
|
||||
fi
|
||||
echo "apk 源不可达: ${host}"
|
||||
done
|
||||
if [ -z "${chosen}" ]; then echo "所有 apk 源均不可达,请检查 runner 容器网络/代理"; exit 1; fi
|
||||
echo "使用 apk 源: ${chosen}"
|
||||
sed -i "s#dl-cdn.alpinelinux.org#${chosen}#g" /etc/apk/repositories
|
||||
apk add --no-cache git curl
|
||||
|
||||
# 内网 Gitea 无法访问 GitHub 拉 actions/checkout,手动 clone 本仓库
|
||||
- name: 拉取源码(内网无 GitHub,手动 clone 本仓库)
|
||||
|
||||
Reference in New Issue
Block a user