更新 .gitea/workflows/.gitlab-ci.yml
All checks were successful
Plugin Library CI / publish (00.StaryEvoTools) (push) Successful in 10s
Plugin Library CI / publish (01.HybridCLR) (push) Successful in 4s
Plugin Library CI / publish (03.YooAsset) (push) Successful in 33s
Plugin Library CI / publish (07.RKTools) (push) Successful in 3s
Plugin Library CI / publish (08.UniTask) (push) Successful in 3s
Plugin Library CI / publish (09.CodeChecker) (push) Successful in 16s
Plugin Library CI / publish (10.StoryEditor) (push) Successful in 3s
Plugin Library CI / publish (10.XNode) (push) Successful in 3s
Plugin Library CI / publish (00.ARMazTools) (push) Successful in 2s
Plugin Library CI / publish (00.BuildOriginality) (push) Successful in 2s
Plugin Library CI / publish (00.StaryEvo) (push) Successful in 6s
Plugin Library CI / publish (02.InformationSave) (push) Successful in 3s
Plugin Library CI / publish (04.AudioCore) (push) Successful in 3s
Plugin Library CI / publish (05.TableTextConversion) (push) Successful in 4s
Plugin Library CI / publish (06.UIFarme) (push) Successful in 16s
Plugin Library CI / publish (11.PointCloudTools) (push) Successful in 3s
All checks were successful
Plugin Library CI / publish (00.StaryEvoTools) (push) Successful in 10s
Plugin Library CI / publish (01.HybridCLR) (push) Successful in 4s
Plugin Library CI / publish (03.YooAsset) (push) Successful in 33s
Plugin Library CI / publish (07.RKTools) (push) Successful in 3s
Plugin Library CI / publish (08.UniTask) (push) Successful in 3s
Plugin Library CI / publish (09.CodeChecker) (push) Successful in 16s
Plugin Library CI / publish (10.StoryEditor) (push) Successful in 3s
Plugin Library CI / publish (10.XNode) (push) Successful in 3s
Plugin Library CI / publish (00.ARMazTools) (push) Successful in 2s
Plugin Library CI / publish (00.BuildOriginality) (push) Successful in 2s
Plugin Library CI / publish (00.StaryEvo) (push) Successful in 6s
Plugin Library CI / publish (02.InformationSave) (push) Successful in 3s
Plugin Library CI / publish (04.AudioCore) (push) Successful in 3s
Plugin Library CI / publish (05.TableTextConversion) (push) Successful in 4s
Plugin Library CI / publish (06.UIFarme) (push) Successful in 16s
Plugin Library CI / publish (11.PointCloudTools) (push) Successful in 3s
This commit is contained in:
@@ -3,22 +3,21 @@ name: Plugin Library CI
|
||||
on:
|
||||
push:
|
||||
branches: [master, main]
|
||||
workflow_dispatch: # 支持手动触发
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
SERVER_HOST: ${{ vars.SERVER_HOST }}
|
||||
AuthToken: ${{ vars.AUTH_TOKEN }}
|
||||
|
||||
jobs:
|
||||
# 定义所有模块矩阵
|
||||
publish:
|
||||
runs-on: dev # 对应你的 GitLab runner tag
|
||||
runs-on: dev
|
||||
container:
|
||||
image: node:18-bookworm
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
max-parallel: 4 # 关键:同时只跑 2 个模块,其余排队
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
module:
|
||||
- 00.StaryEvo
|
||||
@@ -39,59 +38,55 @@ jobs:
|
||||
- 11.PointCloudTools
|
||||
|
||||
steps:
|
||||
#- name: Install Git
|
||||
# run: |
|
||||
# apk add --no-cache git
|
||||
# git --version # 验证
|
||||
- name: Checkout
|
||||
uses: http://106.52.62.106:3000/unity-registry/checkout@v4
|
||||
uses: http://106.52.62.106:3000/unity-registry/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1 # 只拉取最新提交,不拉历史
|
||||
single-branch: true # 只拉取当前分支
|
||||
sparse-checkout: Assets/${{ matrix.module }} # 关键:只拉这个目录
|
||||
sparse-checkout-cone-mode: false # 关键:关闭 cone 模式(更精确)
|
||||
fetch-depth: 1
|
||||
single-branch: true
|
||||
sparse-checkout: Assets/${{ matrix.module }}
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- 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
|
||||
ln -sf /srv/18-alpine/bin/node /usr/bin/node 2>/dev/null || true
|
||||
ln -sf /srv/18-alpine/bin/npm /usr/bin/npm 2>/dev/null || true
|
||||
node -v
|
||||
|
||||
# 修正:所有 shell 命令必须缩进在 run: | 下面
|
||||
- name: Publish ${{ matrix.module }}
|
||||
working-directory: Assets/${{ matrix.module }}
|
||||
run: |
|
||||
echo "📦 开始处理 ${{ matrix.module }}"
|
||||
|
||||
# 获取当前版本号
|
||||
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
||||
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||||
REGISTRY_URL="http://${SERVER_HOST}/npm"
|
||||
|
||||
echo "当前版本: $PACKAGE_NAME@$CURRENT_VERSION"
|
||||
echo "Registry: $REGISTRY_URL"
|
||||
|
||||
# 配置 npm
|
||||
npm config set registry "$REGISTRY_URL"
|
||||
npm config set "//${SERVER_HOST}/:_authToken" "${AuthToken}"
|
||||
|
||||
# 关键:先检查远程是否已存在该版本
|
||||
echo "🔍 检查远程版本..."
|
||||
if npm view "$PACKAGE_NAME@$CURRENT_VERSION" --registry="$REGISTRY_URL" version >/dev/null 2>&1; then
|
||||
echo "⚠️ 版本 $CURRENT_VERSION 已存在,跳过发布"
|
||||
echo "💡 提示:如需更新,请修改 package.json 中的 version 字段"
|
||||
exit 0 # 正常退出,不算失败
|
||||
fi
|
||||
|
||||
# 版本不存在,执行发布
|
||||
echo "🚀 版本 $CURRENT_VERSION 不存在,开始发布..."
|
||||
if npm publish; then
|
||||
echo "✅ $PACKAGE_NAME@$CURRENT_VERSION 发布成功"
|
||||
else
|
||||
echo "❌ 发布失败(非版本冲突错误)"
|
||||
exit 1 # 真正的失败,终止 CI
|
||||
fi
|
||||
|
||||
|
||||
echo "📦 开始处理 ${{ matrix.module }}"
|
||||
|
||||
# 获取当前版本号
|
||||
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
||||
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||||
REGISTRY_URL="http://${SERVER_HOST}/npm"
|
||||
|
||||
echo "当前版本: $PACKAGE_NAME@$CURRENT_VERSION"
|
||||
echo "Registry: $REGISTRY_URL"
|
||||
|
||||
# 配置 npm
|
||||
npm config set registry "$REGISTRY_URL"
|
||||
npm config set "//${SERVER_HOST}/:_authToken" "${AuthToken}"
|
||||
|
||||
# 关键:先检查远程是否已存在该版本
|
||||
echo "🔍 检查远程版本..."
|
||||
if npm view "$PACKAGE_NAME@$CURRENT_VERSION" --registry="$REGISTRY_URL" version >/dev/null 2>&1; then
|
||||
echo "⚠️ 版本 $CURRENT_VERSION 已存在,跳过发布"
|
||||
echo "💡 提示:如需更新,请修改 package.json 中的 version 字段"
|
||||
exit 0 # 正常退出,不算失败
|
||||
fi
|
||||
|
||||
# 版本不存在,执行发布
|
||||
echo "🚀 版本 $CURRENT_VERSION 不存在,开始发布..."
|
||||
if npm publish; then
|
||||
echo "✅ $PACKAGE_NAME@$CURRENT_VERSION 发布成功"
|
||||
else
|
||||
echo "❌ 发布失败(非版本冲突错误)"
|
||||
exit 1 # 真正的失败,终止 CI
|
||||
fi
|
||||
|
||||
- name: Complete
|
||||
if: always()
|
||||
run: echo "====== ${{ matrix.module }} 发布完成 ========="
|
||||
run: echo "====== ${{ matrix.module }} 发布完成 ========="
|
||||
Reference in New Issue
Block a user