Files
plugin-library/.gitea/workflows/.gitlab-ci.yml
root 15d4f31fbe
Some checks failed
Plugin Library CI / prepare (push) Failing after 29m30s
Plugin Library CI / publish (00.ARMazTools) (push) Has been skipped
Plugin Library CI / publish (00.BuildOriginality) (push) Has been skipped
Plugin Library CI / publish (00.StaryEvo) (push) Has been skipped
Plugin Library CI / publish (00.StaryEvoTools) (push) Has been skipped
Plugin Library CI / publish (01.HybridCLR) (push) Has been skipped
Plugin Library CI / publish (02.InformationSave) (push) Has been skipped
Plugin Library CI / publish (03.YooAsset) (push) Has been skipped
Plugin Library CI / publish (04.AudioCore) (push) Has been skipped
Plugin Library CI / publish (05.TableTextConversion) (push) Has been skipped
Plugin Library CI / publish (06.UIFarme) (push) Has been skipped
Plugin Library CI / publish (07.RKTools) (push) Has been skipped
Plugin Library CI / publish (08.UniTask) (push) Has been skipped
Plugin Library CI / publish (09.CodeChecker) (push) Has been skipped
Plugin Library CI / publish (10.StoryEditor) (push) Has been skipped
Plugin Library CI / publish (10.XNode) (push) Has been skipped
Plugin Library CI / publish (11.PointCloudTools) (push) Has been skipped
Plugin Library CI / cleanup (push) Successful in 1s
更新 .gitea/workflows/.gitlab-ci.yml
2026-04-02 22:12:59 +08:00

123 lines
3.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Plugin Library CI
on:
push:
branches: [master, main]
workflow_dispatch:
env:
SERVER_HOST: ${{ vars.SERVER_HOST }}
AuthToken: ${{ vars.AUTH_TOKEN }}
# 定义本地缓存路径:按仓库+Commit ID 组织,避免冲突
CACHE_PATH: /srv/ci-cache/${{ github.repository }}/${{ github.sha }}
jobs:
# ========== 阶段1一次性准备代码包 ==========
prepare:
runs-on: dev
container:
image: alpine:latest
steps:
- name: Install Tools
run: apk add --no-cache git tar gzip
- name: Checkout Repository
uses: http://106.52.62.106:3000/unity-registry/checkout@v4
with:
fetch-depth: 1
single-branch: true
- name: Pack Code to /srv
run: |
# 创建目录结构(按仓库和 Commit 分层,防止冲突)
mkdir -p ${{ env.CACHE_PATH }}
# 打包当前工作区到 /srv排除 .git 节省空间)
tar czf ${{ env.CACHE_PATH }}/source.tar.gz --exclude='.git' -C ${{ github.workspace }} .
echo "✅ 代码已打包到: ${{ env.CACHE_PATH }}/source.tar.gz"
ls -lh ${{ env.CACHE_PATH }}/source.tar.gz
# ========== 阶段2并行发布直接从 /srv 加载) ==========
publish:
needs: prepare
runs-on: dev
container:
image: node:18-alpine
strategy:
fail-fast: false
max-parallel: 2
matrix:
module:
- 00.StaryEvo
- 00.StaryEvoTools
- 00.BuildOriginality
- 00.ARMazTools
- 01.HybridCLR
- 02.InformationSave
- 03.YooAsset
- 04.AudioCore
- 05.TableTextConversion
- 06.UIFarme
- 07.RKTools
- 08.UniTask
- 09.CodeChecker
- 10.StoryEditor
- 10.XNode
- 11.PointCloudTools
steps:
# 关键优化:从本地 /srv 解压,无需任何网络操作
- name: Extract Source from /srv
run: |
echo "📦 从本地缓存解压: ${{ env.CACHE_PATH }}/source.tar.gz"
# 直接解压到 Gitea 默认工作目录(通常是 /workspace
mkdir -p ${{ github.workspace }}
tar xzf ${{ env.CACHE_PATH }}/source.tar.gz -C ${{ github.workspace }}
# 验证文件存在(调试用,稳定后可删除)
ls -la ${{ github.workspace }}/Assets/${{ matrix.module }}/package.json
- name: Setup Node.js
run: |
ln -sf /srv/18-alpine/bin/node /usr/bin/node
ln -sf /srv/18-alpine/bin/npm /usr/bin/npm
node -v
- name: Publish ${{ matrix.module }}
working-directory: ${{ github.workspace }}/Assets/${{ matrix.module }}
run: |
echo "🚀 开始发布 ${{ matrix.module }}"
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "当前版本: $CURRENT_VERSION"
# 配置 npm registry
echo "registry=http://${SERVER_HOST}/npm" > .npmrc
echo "//${SERVER_HOST}/:_authToken=${AuthToken}" >> .npmrc
# 发布(失败不阻断其他任务)
npm publish || echo "⚠️ 发布失败,继续执行"
echo "✅ ${{ matrix.module }} 处理完成"
- name: Job Complete
if: always()
run: echo "======== ${{ matrix.module }} 发布 Job 结束 ========"
# ========== 阶段3清理可选但推荐 ==========
cleanup:
needs: publish
runs-on: dev
if: always() # 即使发布失败也清理,防止磁盘堆积
container:
image: alpine:latest
steps:
- name: Remove Local Cache
run: |
echo "🧹 清理临时文件: ${{ env.CACHE_PATH }}"
rm -rf ${{ env.CACHE_PATH }}
# 如果上层目录为空,也一并删除
rmdir $(dirname ${{ env.CACHE_PATH }}) 2>/dev/null || true
echo "✅ 清理完成"