111111
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 33s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 2m45s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 5m19s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 3m42s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 2m18s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 2m13s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 5m8s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 3m26s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 2m46s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 6m28s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 4m3s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 5m37s
All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 33s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 2m45s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 5m19s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 3m42s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 2m18s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 2m13s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 5m8s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 3m26s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 2m46s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 6m28s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 4m3s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 5m37s
This commit is contained in:
@@ -15,43 +15,23 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# 使用本地目录缓存(而非 actions/cache)
|
# 直接挂载宿主机的缓存目录
|
||||||
- name: Cache Node modules
|
|
||||||
run: |
|
|
||||||
CACHE_DIR="/data/cache/node-modules"
|
|
||||||
CACHE_KEY="node-modules-${{ hashFiles('web/package-lock.json') }}"
|
|
||||||
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
|
|
||||||
# 如果缓存存在且匹配,恢复缓存
|
|
||||||
if [ -d "$CACHE_DIR/$CACHE_KEY" ]; then
|
|
||||||
echo "Cache hit: $CACHE_KEY"
|
|
||||||
cp -r "$CACHE_DIR/$CACHE_KEY" web/node_modules
|
|
||||||
else
|
|
||||||
echo "Cache miss: $CACHE_KEY"
|
|
||||||
# 清理旧缓存
|
|
||||||
rm -rf "$CACHE_DIR"/*
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Build Frontend
|
- name: Build Frontend
|
||||||
run: |
|
run: |
|
||||||
cd web
|
cd web
|
||||||
npm ci --prefer-offline --no-audit
|
# 使用共享的 node_modules 缓存
|
||||||
npm run build
|
if [ -d /data/cache/node_modules_cache ]; then
|
||||||
|
echo "Restoring node_modules from cache..."
|
||||||
# 保存缓存到本地目录
|
cp -r /data/cache/node_modules_cache/node_modules . 2>/dev/null || true
|
||||||
- name: Save Node modules cache
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
CACHE_DIR="/data/cache/node-modules"
|
|
||||||
CACHE_KEY="node-modules-${{ hashFiles('web/package-lock.json') }}"
|
|
||||||
|
|
||||||
if [ -d "web/node_modules" ]; then
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
rm -rf "$CACHE_DIR/$CACHE_KEY"
|
|
||||||
cp -r web/node_modules "$CACHE_DIR/$CACHE_KEY"
|
|
||||||
echo "Cache saved: $CACHE_KEY"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
npm ci --prefer-offline --no-audit
|
||||||
|
|
||||||
|
# 保存缓存
|
||||||
|
mkdir -p /data/cache/node_modules_cache
|
||||||
|
cp -r node_modules /data/cache/node_modules_cache/ 2>/dev/null || true
|
||||||
|
|
||||||
|
npm run build
|
||||||
|
|
||||||
- name: Upload Frontend Artifact
|
- name: Upload Frontend Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -67,7 +47,17 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
# ... 你的 matrix 配置保持不变 ...
|
- { goos: linux, goarch: amd64, target: server, upx: true }
|
||||||
|
- { goos: linux, goarch: amd64, target: client, upx: true }
|
||||||
|
- { goos: linux, goarch: arm64, target: server, upx: true }
|
||||||
|
- { goos: linux, goarch: arm64, target: client, upx: true }
|
||||||
|
- { goos: linux, goarch: arm, goarm: 7, target: server, upx: true }
|
||||||
|
- { goos: linux, goarch: arm, goarm: 7, target: client, upx: true }
|
||||||
|
- { goos: windows, goarch: amd64, target: server, upx: true }
|
||||||
|
- { goos: windows, goarch: amd64, target: client, upx: true }
|
||||||
|
- { goos: windows, goarch: arm64, target: server, upx: false }
|
||||||
|
- { goos: darwin, goarch: amd64, target: server, upx: false }
|
||||||
|
- { goos: darwin, goarch: arm64, target: server, upx: false }
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
@@ -83,23 +73,24 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# 使用本地目录缓存 Go 模块
|
# 使用挂载卷缓存 Go 模块
|
||||||
- name: Cache Go modules
|
- name: Setup Go Cache
|
||||||
run: |
|
run: |
|
||||||
CACHE_DIR="/data/cache/go-modules"
|
# 创建缓存目录
|
||||||
CACHE_KEY="go-${{ runner.os }}-${{ hashFiles('go.sum') }}"
|
mkdir -p /data/cache/go-pkg-mod
|
||||||
|
mkdir -p /data/cache/go-build-cache
|
||||||
|
mkdir -p ~/go/pkg/mod
|
||||||
|
mkdir -p ~/.cache/go-build
|
||||||
|
|
||||||
mkdir -p "$CACHE_DIR"
|
# 恢复缓存(使用硬链接以节省空间和时间)
|
||||||
|
if [ -d /data/cache/go-pkg-mod ] && [ "$(ls -A /data/cache/go-pkg-mod)" ]; then
|
||||||
|
echo "Restoring Go pkg cache..."
|
||||||
|
cp -al /data/cache/go-pkg-mod/* ~/go/pkg/mod/ 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -d "$CACHE_DIR/$CACHE_KEY" ]; then
|
if [ -d /data/cache/go-build-cache ] && [ "$(ls -A /data/cache/go-build-cache)" ]; then
|
||||||
echo "Cache hit: $CACHE_KEY"
|
echo "Restoring Go build cache..."
|
||||||
mkdir -p ~/go/pkg/mod
|
cp -al /data/cache/go-build-cache/* ~/.cache/go-build/ 2>/dev/null || true
|
||||||
mkdir -p ~/.cache/go-build
|
|
||||||
[ -d "$CACHE_DIR/$CACHE_KEY/mod" ] && cp -r "$CACHE_DIR/$CACHE_KEY/mod"/* ~/go/pkg/mod/ 2>/dev/null || true
|
|
||||||
[ -d "$CACHE_DIR/$CACHE_KEY/build" ] && cp -r "$CACHE_DIR/$CACHE_KEY/build"/* ~/.cache/go-build/ 2>/dev/null || true
|
|
||||||
else
|
|
||||||
echo "Cache miss: $CACHE_KEY"
|
|
||||||
rm -rf "$CACHE_DIR"/*
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Download Go dependencies
|
- name: Download Go dependencies
|
||||||
@@ -130,19 +121,16 @@ jobs:
|
|||||||
|
|
||||||
echo "CURRENT_FILENAME=${FILENAME}" >> $GITHUB_ENV
|
echo "CURRENT_FILENAME=${FILENAME}" >> $GITHUB_ENV
|
||||||
|
|
||||||
# 保存 Go 模块缓存
|
# 保存 Go 缓存(异步,不阻塞主流程)
|
||||||
- name: Save Go modules cache
|
- name: Save Go Cache
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
CACHE_DIR="/data/cache/go-modules"
|
# 只在缓存有更新时保存(使用 rsync 可以更高效)
|
||||||
CACHE_KEY="go-${{ runner.os }}-${{ hashFiles('go.sum') }}"
|
rsync -a --delete ~/go/pkg/mod/ /data/cache/go-pkg-mod/ 2>/dev/null || \
|
||||||
|
cp -r ~/go/pkg/mod/* /data/cache/go-pkg-mod/ 2>/dev/null || true
|
||||||
|
|
||||||
mkdir -p "$CACHE_DIR/$CACHE_KEY"
|
rsync -a --delete ~/.cache/go-build/ /data/cache/go-build-cache/ 2>/dev/null || \
|
||||||
|
cp -r ~/.cache/go-build/* /data/cache/go-build-cache/ 2>/dev/null || true
|
||||||
[ -d ~/go/pkg/mod ] && cp -r ~/go/pkg/mod "$CACHE_DIR/$CACHE_KEY/" 2>/dev/null || true
|
|
||||||
[ -d ~/.cache/go-build ] && cp -r ~/.cache/go-build "$CACHE_DIR/$CACHE_KEY/" 2>/dev/null || true
|
|
||||||
|
|
||||||
echo "Cache saved: $CACHE_KEY"
|
|
||||||
|
|
||||||
- name: Run UPX Compression
|
- name: Run UPX Compression
|
||||||
if: matrix.upx == true
|
if: matrix.upx == true
|
||||||
|
|||||||
Reference in New Issue
Block a user