Files
OxideJS-New/.github/workflows/ci-test.yml
T

53 lines
2.3 KiB
YAML

name: CI Test
# 可复用工作流:主 ci.yml 的 test job 经 workflow_call 调用本文件。外观上主 CI
# 只有一个 test job(全过才绿),点进去才看到内部 matrix(os × group)并行图。
# 产物复用:rust-cache 按「OS + Cargo.lock」键在仓库级共享,本 workflow 的 test
# job 能 restore 主 ci.yml build job 存的 target/ 缓存(跨 workflow 边界有效)。
on:
workflow_call:
jobs:
test:
name: Test (${{ matrix.os }} / ${{ matrix.group.name }})
strategy:
fail-fast: false
matrix:
# os 列表静态:960 跨平台时手改加 windows-latest 与 macos-latest。在生成段
# 之外,钩子重生成 group 条目时不会覆盖它。
os: [ubuntu-latest]
group:
# === AUTO-GENERATED: group 条目(gen_ci_test_jobs.sh 生成,勿手改)===
- name: oxide_builtins-1
args: "-p oxide_builtins --partition count:2/1"
- name: oxide_builtins-2
args: "-p oxide_builtins --partition count:2/2"
- name: oxide_vm-1
args: "-p oxide_vm --partition count:2/1"
- name: oxide_vm-2
args: "-p oxide_vm --partition count:2/2"
- name: oxide_cli
args: "-p oxide_cli"
- name: oxide_types
args: "-p oxide_types"
- name: light-1
args: "-p oxide_test262 -p oxide_emit -p oxide_dce -p oxide_liveness -p oxide_runtime_api"
- name: light-2
args: "-p oxide_kernel -p oxide_regalloc -p oxide_cfg -p oxide_bytecode -p oxide_engine -p oxide_compiler -p oxide_parser -p oxide_log -p oxide_ir -p oxide_code_cache"
# === END AUTO-GENERATED ===
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
# 与 ci.yml 的 build job 同键:复用 build 的 target/ 缓存,只补编
# test harness。自定义键避免按 profile 自动分键(build/test 各一)
# 导致 test 恢复陈旧缓存、重链接时走默认 ld 报 cannot find ld。
key: oxide-target-ubuntu-v1
- uses: ./.github/actions/setup-tools
- name: Test
run: cargo nextest run ${{ matrix.group.args }}