A portable evidence bundle model for reproducible MoonBit builds, tests, diagnostics, and artifacts.
如何把一次构建、测试、运行、诊断、依赖和产物检查,保存成可比较、可复现、可审计的统一证据。
moon add Kai-Junhan/moonbit-evidence-bundlelet bundle = @evidence.EvidenceBundle::new("demo", "moon 0.1.20260703")
let bundle = match @evidence.test_run_entry(
"tests",
"run tests",
"Total tests: 3, passed: 3, failed: 0.",
command="moon test --target wasm-gc",
) {
Some(entry) => bundle.add(entry)
None => bundle
}
println(bundle.digest())moon run --target js examples/quickstartmoon run --target js examples/junitmoon run --target js cmd/demo{
"format_version": "0.1",
"project": "demo",
"toolchain": "moon 0.1.20260703",
"entries": [
{
"id": "report",
"kind": "Artifact",
"status": "Passed",
"label": "first bundle report",
"command": null,
"detail": null,
"digest": "24e44dbb5b4eec00bde3c7a551acf2754dffffddc8d2a95bb43ffe380370d802"
}
]
}Moon CLI / test / build / run
│
├── SARIF / JUnit / coverage / benchmark adapters
├── dependency / license / API snapshot adapters
▼
Evidence Bundle Protocol
│
├── validate
├── fingerprint
├── diff
├── query failed evidence
└── release gate
▼
JSON bundle / CI artifact / Moocakes quality viewmoon fmt
moon info
moon check --target wasm-gc --deny-warn
moon build --target wasm-gc
moon test --target wasm-gc --deny-warn
moon run --target wasm-gc cmd/demoInstall
Download zipA portable evidence bundle model for reproducible MoonBit builds, tests, diagnostics, and artifacts.