* refactor: 编辑器/运行时架构拆分与构建系统升级 * feat(core): 层级系统重构与UI变换矩阵修复 * refactor: 移除 ecs-components 聚合包并修复跨包组件查找问题 * fix(physics): 修复跨包组件类引用问题 * feat: 统一运行时架构与浏览器运行支持 * feat(asset): 实现浏览器运行时资产加载系统 * fix: 修复文档、CodeQL安全问题和CI类型检查错误 * fix: 修复文档、CodeQL安全问题和CI类型检查错误 * fix: 修复文档、CodeQL安全问题、CI类型检查和测试错误 * test: 补齐核心模块测试用例,修复CI构建配置 * fix: 修复测试用例中的类型错误和断言问题 * fix: 修复 turbo build:npm 任务的依赖顺序问题 * fix: 修复 CI 构建错误并优化构建性能 * feat(docs): 重构文档站主题样式 * chore(ci): 升级所有 workflow 的 pnpm 版本从 v8 到 v10
128 lines
3.1 KiB
YAML
128 lines
3.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main, develop ]
|
|
paths:
|
|
- 'packages/**'
|
|
- 'package.json'
|
|
- 'pnpm-lock.yaml'
|
|
- 'tsconfig.json'
|
|
- 'turbo.json'
|
|
- 'jest.config.*'
|
|
- '.github/workflows/ci.yml'
|
|
pull_request:
|
|
branches: [ master, main, develop ]
|
|
paths:
|
|
- 'packages/**'
|
|
- 'package.json'
|
|
- 'pnpm-lock.yaml'
|
|
- 'tsconfig.json'
|
|
- 'turbo.json'
|
|
- 'jest.config.*'
|
|
- '.github/workflows/ci.yml'
|
|
|
|
jobs:
|
|
ci:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v2
|
|
with:
|
|
version: 10
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20.x'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install Rust stable
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: wasm32-unknown-unknown
|
|
|
|
# 缓存 Rust 编译结果
|
|
- name: Cache Rust dependencies
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: packages/engine
|
|
cache-on-failure: true
|
|
|
|
# 缓存 wasm-pack
|
|
- name: Cache wasm-pack
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cargo/bin/wasm-pack
|
|
key: wasm-pack-${{ runner.os }}
|
|
|
|
- name: Install wasm-pack
|
|
run: |
|
|
if ! command -v wasm-pack &> /dev/null; then
|
|
cargo install wasm-pack
|
|
fi
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --no-frozen-lockfile
|
|
|
|
# 缓存 Turbo
|
|
- name: Cache Turbo
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: .turbo
|
|
key: turbo-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.sha }}
|
|
restore-keys: |
|
|
turbo-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}-
|
|
turbo-${{ runner.os }}-
|
|
|
|
# 构建所有包
|
|
- name: Build all packages
|
|
run: pnpm run build
|
|
|
|
- name: Copy WASM files to ecs-engine-bindgen
|
|
run: |
|
|
mkdir -p packages/ecs-engine-bindgen/src/wasm
|
|
cp packages/engine/pkg/es_engine.js packages/ecs-engine-bindgen/src/wasm/
|
|
cp packages/engine/pkg/es_engine.d.ts packages/ecs-engine-bindgen/src/wasm/
|
|
cp packages/engine/pkg/es_engine_bg.wasm packages/ecs-engine-bindgen/src/wasm/
|
|
cp packages/engine/pkg/es_engine_bg.wasm.d.ts packages/ecs-engine-bindgen/src/wasm/
|
|
|
|
# 类型检查
|
|
- name: Type check
|
|
run: pnpm run type-check
|
|
|
|
# Lint 检查
|
|
- name: Lint check
|
|
run: pnpm run lint
|
|
|
|
# 测试
|
|
- name: Run tests with coverage
|
|
run: pnpm run test:ci
|
|
|
|
- name: Upload coverage to Codecov
|
|
uses: codecov/codecov-action@v4
|
|
continue-on-error: true
|
|
with:
|
|
file: ./coverage/lcov.info
|
|
flags: unittests
|
|
name: codecov-umbrella
|
|
fail_ci_if_error: false
|
|
|
|
# 构建 npm 包
|
|
- name: Build npm packages
|
|
run: pnpm run build:npm
|
|
|
|
# 上传构建产物
|
|
- name: Upload build artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: build-artifacts
|
|
path: |
|
|
packages/*/dist/
|
|
packages/*/bin/
|
|
retention-days: 7
|