fix-ci-host-network
This commit is contained in:
@@ -12,10 +12,20 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-and-test:
|
build-and-test:
|
||||||
runs-on: CDCD
|
runs-on: CDCD
|
||||||
container: dockerreg.eazygame.cn/node:22-bookworm
|
container:
|
||||||
|
image: dockerreg.eazygame.cn/node:22-bookworm
|
||||||
|
# 使用 host 网络模式,让容器共享宿主机的网络栈
|
||||||
|
# 这样容器就能解析宿主机的 hosts,也能访问 localhost:3000 (Gitea) 和 localhost:7890 (Clash)
|
||||||
|
# 同时强制将 Gitea 域名解析到 localhost (宿主机),确保能连上
|
||||||
|
options: --network host --add-host gittea.eazygame.cn:127.0.0.1
|
||||||
env:
|
env:
|
||||||
SKIP_ENV_VALIDATION: "1"
|
SKIP_ENV_VALIDATION: "1"
|
||||||
NEXT_TELEMETRY_DISABLED: "1"
|
NEXT_TELEMETRY_DISABLED: "1"
|
||||||
|
# 使用 host 模式后,容器内的 localhost 就是宿主机本身
|
||||||
|
http_proxy: "http://127.0.0.1:7890"
|
||||||
|
https_proxy: "http://127.0.0.1:7890"
|
||||||
|
HTTP_PROXY: "http://127.0.0.1:7890"
|
||||||
|
HTTPS_PROXY: "http://127.0.0.1:7890"
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -33,31 +43,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Configure npm proxy
|
- name: Configure npm proxy
|
||||||
run: |
|
run: |
|
||||||
# 自动获取容器的默认网关 IP(即宿主机 IP)
|
# 容器现在是 Host 模式,直接使用 localhost 即可
|
||||||
# ip route show default | awk '{print $3}'
|
npm config set proxy "$HTTP_PROXY"
|
||||||
# 或者如果没有 ip 命令,尝试解析 host.docker.internal (如果 runner 支持)
|
npm config set https-proxy "$HTTPS_PROXY"
|
||||||
# 这里假设容器内有 iproute2 工具
|
|
||||||
|
|
||||||
GATEWAY_IP=$(ip route show | grep default | awk '{print $3}')
|
echo "Using Proxy: $HTTP_PROXY"
|
||||||
echo "Detected Docker Gateway: $GATEWAY_IP"
|
|
||||||
|
|
||||||
if [ -z "$GATEWAY_IP" ]; then
|
|
||||||
echo "Warning: Could not detect gateway IP, falling back to 172.17.0.1"
|
|
||||||
GATEWAY_IP="172.17.0.1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PROXY_URL="http://$GATEWAY_IP:7890"
|
|
||||||
echo "Using Proxy: $PROXY_URL"
|
|
||||||
|
|
||||||
# 设置 npm 代理
|
|
||||||
npm config set proxy "$PROXY_URL"
|
|
||||||
npm config set https-proxy "$PROXY_URL"
|
|
||||||
|
|
||||||
# 设置环境变量供后续步骤使用 (例如 cypress, next build 等)
|
|
||||||
echo "http_proxy=$PROXY_URL" >> $GITHUB_ENV
|
|
||||||
echo "https_proxy=$PROXY_URL" >> $GITHUB_ENV
|
|
||||||
echo "HTTP_PROXY=$PROXY_URL" >> $GITHUB_ENV
|
|
||||||
echo "HTTPS_PROXY=$PROXY_URL" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Show proxy status
|
- name: Show proxy status
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user