更新 .gitea/workflows/.gitlab-ci.yml
Some checks failed
Plugin Library CI / prepare (push) Failing after 2s
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
Some checks failed
Plugin Library CI / prepare (push) Failing after 2s
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
This commit is contained in:
@@ -3,19 +3,47 @@ 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
|
||||
# ========== 第一阶段:准备(只执行一次)==========
|
||||
prepare:
|
||||
runs-on: dev
|
||||
container:
|
||||
image: node:18-alpine
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: http://106.52.62.106:3000/unity-registry/checkout@v4
|
||||
|
||||
- name: Setup Node.js Environment
|
||||
run: |
|
||||
ln -sf /srv/18-alpine/bin/node /usr/bin/node
|
||||
ln -sf /srv/18-alpine/bin/npm /usr/bin/npm
|
||||
node -v
|
||||
npm -v
|
||||
echo "Node.js 环境配置完成"
|
||||
|
||||
# 将代码打包成 Artifact,供后续 Job 使用
|
||||
- name: Upload Workspace
|
||||
uses: http://106.52.62.106:3000/unity-registry/upload-artifact@v4
|
||||
with:
|
||||
name: plugin-workspace
|
||||
path: |
|
||||
.
|
||||
!.git/
|
||||
retention-days: 1
|
||||
|
||||
# ========== 第二阶段:并行发布(复用准备阶段的结果)==========
|
||||
publish:
|
||||
runs-on: dev
|
||||
container:
|
||||
image: node:18-alpine
|
||||
needs: prepare # 关键:依赖 prepare Job 完成
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -38,36 +66,40 @@ 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
|
||||
- name: Setup Node.js
|
||||
# 下载之前准备好的代码(代替 Checkout)
|
||||
- name: Download Workspace
|
||||
uses: http://106.52.62.106:3000/unity-registry/download-artifact@v4
|
||||
with:
|
||||
name: plugin-workspace
|
||||
|
||||
# 恢复 Node.js 软链接(容器内每次都需要,因为每个 Job 是独立的容器实例)
|
||||
- name: Restore Node.js Links
|
||||
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: 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
|
||||
|
||||
# 发布
|
||||
echo "//${{ vars.SERVER_HOST }}/:_authToken=${AuthToken}" >> .npmrc
|
||||
|
||||
# 检查版本是否已存在(避免 409 错误)
|
||||
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||||
if npm view $PACKAGE_NAME@$CURRENT_VERSION version &>/dev/null; then
|
||||
echo "⚠️ 版本 $CURRENT_VERSION 已存在,跳过发布"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
npm publish || echo "发布失败,继续执行"
|
||||
|
||||
echo "${{ matrix.module }} 构建完成"
|
||||
|
||||
- name: Complete
|
||||
if: always()
|
||||
run: echo "====== ${{ matrix.module }} 发布完成 ========="
|
||||
run: echo "====== ${{ matrix.module }} 发布完成 ========="
|
||||
Reference in New Issue
Block a user