ci: gate conformance on every push, fetching the test-suite

The parse, value, and canonical event-stream conformance suites were opt-in
(PUREYAML_RUN_YAML_TEST_SUITE=1) and so never ran in CI: an oracle that only
runs when asked is not a gate. Add a Conformance workflow that fetches the
canonical yaml-test-suite and runs all three suites, so the event gate's
recorded-gap set fails the build on any regression or silently-closed gap, and
add its README badge alongside the other quality gates.
This commit is contained in:
Mihaela M 2026-06-29 12:06:58 +02:00
parent 93621b8c84
commit c1bb5aa8d6
2 changed files with 27 additions and 0 deletions

26
.github/workflows/conformance.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Conformance
# Canonical YAML test-suite conformance: parse-level, value-level, and the canonical
# event-stream gate. The corpus is fetched, not vendored, so this job fetches it and then
# runs the opt-in conformance tests as a gate. The event gate's recorded-gap set fails the
# build on any regression or any silently-closed gap. One concern, one badge.
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
conformance:
name: Conformance
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- name: Fetch the canonical yaml-test-suite
run: bash scripts/fetch-yaml-test-suite.sh
- name: Run conformance gates
run: PUREYAML_RUN_YAML_TEST_SUITE=1 swift test --filter Conformance

View File

@ -5,6 +5,7 @@
[![Linux](https://github.com/mihaelamj/PureYAML/actions/workflows/linux.yml/badge.svg?branch=main)](https://github.com/mihaelamj/PureYAML/actions/workflows/linux.yml)
[![Windows](https://github.com/mihaelamj/PureYAML/actions/workflows/windows.yml/badge.svg?branch=main)](https://github.com/mihaelamj/PureYAML/actions/workflows/windows.yml)
[![WASM](https://github.com/mihaelamj/PureYAML/actions/workflows/wasm.yml/badge.svg?branch=main)](https://github.com/mihaelamj/PureYAML/actions/workflows/wasm.yml)
[![Conformance](https://github.com/mihaelamj/PureYAML/actions/workflows/conformance.yml/badge.svg?branch=main)](https://github.com/mihaelamj/PureYAML/actions/workflows/conformance.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
PureYAML is a dependency-free YAML package written entirely in Swift.