feat(file-tree): 外部文件可直接拖进资源管理器目录节点(dev-board#363) #1476
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| jobs: | |
| backend: | |
| name: Backend (mvn test) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '21' | |
| cache: maven | |
| - name: Install plugin-api (host SPI, local artifact) | |
| # backend 以普通依赖引用 com.checkba:plugin-api,它是 backend/plugin-api 独立工程, | |
| # 不在任何远端仓库,必须先 install 进本机 ~/.m2 再跑 backend 的 Maven。 | |
| run: mvn -B -q -f backend/plugin-api/pom.xml install | |
| - name: Test | |
| working-directory: backend | |
| # forkNode 走 TCP 而不是默认的 stdout 管道:套件里有测试进程往 native stdout | |
| # 吐脏字节(surefire 报 Corrupted channel),管道模式下 fork 信道被污染, | |
| # surefire 误判 "VM terminated without properly saying goodbye"(退出码 0、 | |
| # 零断言失败也算 BUILD FAILURE),2026-08-14 一天在 Linux runner 上撞了两次, | |
| # 两次都死在同一位置附近、重跑又过。TCP 信道对 stdout 污染免疫。 | |
| run: mvn -B test -Dsurefire.forkNode.factory=org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory | |
| - name: Dump surefire fork diagnostics on failure | |
| if: failure() | |
| working-directory: backend | |
| # fork JVM 静默死亡(退出码 0、零断言失败)时,唯一的现场证据在 dumpstream: | |
| # 里面有写进信道的原始脏字节与 fork 侧异常。不上传 artifact,直接打进日志。 | |
| run: | | |
| for f in target/surefire-reports/*.dumpstream target/surefire-reports/*.dump; do | |
| [ -f "$f" ] || continue | |
| echo "===== $f =====" | |
| head -c 20000 "$f" | LC_ALL=C tr -c '[:print:]\n\t' '.' | |
| echo | |
| done | |
| frontend: | |
| name: Frontend (build:h5) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install dependencies | |
| working-directory: frontend | |
| # 原来是 npm ci || npm install:lockfile 真漂了的话 npm install 会悄悄改写 | |
| # package-lock.json 并让构建照样通过,等于没有任何 lockfile 漂移守卫(同文件 | |
| # desktop job 一直是干净的 npm ci)。本地验证过 frontend/ 的 lockfile 与 | |
| # package.json 一致(npm ci 能正常跑通),收紧成单纯 npm ci。 | |
| run: npm ci | |
| - name: Check emit/binding contracts | |
| working-directory: frontend | |
| run: npm run check:emits | |
| - name: Check locale key parity (zh-CN vs en-US) | |
| working-directory: frontend | |
| run: npm run check:locales | |
| - name: Check navigation contracts | |
| working-directory: frontend | |
| run: npm run check:nav:full | |
| - name: Test project-home page | |
| working-directory: frontend | |
| run: npm run test:project-home | |
| - name: Test EvidenceLink pure functions (anchor hash 双端对拍 / locator / 拖放建链) | |
| working-directory: frontend | |
| run: npm run test:evidence | |
| - name: Test command registry (加速键归属与 when 求值) | |
| working-directory: frontend | |
| run: npm run test:commands | |
| - name: Build H5 | |
| working-directory: frontend | |
| run: npm run build:h5 | |
| desktop: | |
| name: Desktop (install deps) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: npm | |
| cache-dependency-path: desktop/package-lock.json | |
| - name: Install dependencies | |
| working-directory: desktop | |
| run: npm ci |