All checks were successful
Plugin Library CI / publish (00.BuildOriginality) (push) Successful in 3s
Plugin Library CI / publish (00.StaryEvo) (push) Successful in 4s
Plugin Library CI / publish (00.StaryEvoTools) (push) Successful in 10s
Plugin Library CI / publish (01.HybridCLR) (push) Successful in 5s
Plugin Library CI / publish (02.InformationSave) (push) Successful in 3s
Plugin Library CI / publish (03.YooAsset) (push) Successful in 33s
Plugin Library CI / publish (04.AudioCore) (push) Successful in 4s
Plugin Library CI / publish (05.TableTextConversion) (push) Successful in 7s
Plugin Library CI / publish (06.UIFarme) (push) Successful in 17s
Plugin Library CI / publish (07.RKTools) (push) Successful in 3s
Plugin Library CI / publish (08.UniTask) (push) Successful in 4s
Plugin Library CI / publish (09.CodeChecker) (push) Successful in 17s
Plugin Library CI / publish (10.StoryEditor) (push) Successful in 3s
Plugin Library CI / publish (10.XNode) (push) Successful in 3s
Plugin Library CI / publish (11.PointCloudTools) (push) Successful in 4s
91 lines
2.8 KiB
YAML
91 lines
2.8 KiB
YAML
name: Plugin Library CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ dev_run]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
SERVER_HOST: ${{ vars.SERVER_HOST }}
|
|
AuthToken: ${{ vars.AUTH_TOKEN }}
|
|
|
|
jobs:
|
|
publish:
|
|
runs-on: dev
|
|
container:
|
|
image: node:18-bookworm
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 4
|
|
matrix:
|
|
module:
|
|
- 00.StaryEvo
|
|
- 00.StaryEvoTools
|
|
- 00.BuildOriginality
|
|
- 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:
|
|
- name: Checkout
|
|
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
|
|
|
|
- name: Setup Node.js
|
|
run: |
|
|
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
|
|
|
|
- name: Complete
|
|
if: always()
|
|
run: echo "====== ${{ matrix.module }} 发布完成 =========" |