///|
fn main {
let unit_tap =
#|TAP version 13
#|1..3
#|ok 1 - parser smoke
#|ok 2 - policy catalog
#|ok 3 - report export
let wasm_tap =
#|TAP version 13
#|1..2
#|ok 1 - wasm bundle generated
#|ok 2 - browser fixture skipped # SKIP headless only
let suite = @taptrail.parse_suite("release-candidate", [
@taptrail.named_input("unit.tap", unit_tap),
@taptrail.named_input("wasm.tap", wasm_tap),
])
let gate = @taptrail.evaluate_suite_policy(suite, @taptrail.release_policy())
println("# CI Gate Example")
println(@taptrail.suite_to_markdown(suite))
println(@taptrail.policy_result_to_markdown(gate))
println(@taptrail.suite_to_env_lines(suite, "taptrail"))
println(
@taptrail.suite_badge_markdown(
suite, "taptrail", "https://github.com/MX-ai-nb/taptrail/actions",
),
)
println(
@taptrail.annotations_to_markdown(@taptrail.suite_annotations(suite, "tap")),
)
let previous = @taptrail.run_record(
"build-101",
"previous candidate",
"2026-08-19T10:00:00+08:00",
@taptrail.parse_and_report(
(
#|TAP version 13
#|1..2
#|ok 1 - parser smoke
#|not ok 2 - export snapshot
),
),
)
let current = @taptrail.run_record(
"build-102",
"current candidate",
"2026-08-20T10:00:00+08:00",
@taptrail.parse_and_report(unit_tap),
)
println(
@taptrail.trend_to_markdown(@taptrail.compare_runs(previous, current)),
)
}