Skip to content

docs(marketing): PH 表单补 Shoutouts 一节(dev-board#302) #1470

docs(marketing): PH 表单补 Shoutouts 一节(dev-board#302)

docs(marketing): PH 表单补 Shoutouts 一节(dev-board#302) #1470

Workflow file for this run

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