Expand description
Export-with-degradation: QED → GitHub Actions (R533-F8, W224).
W224 settles the QED↔GHA boundary as import, not emulate, and is
explicit that the reverse direction is asymmetric: “QED→GHA can only emit
GHA that shells out to yah in run: steps (content-addressed /
atomic-release features don’t map back). Useful for keep GitHub as a
fallback CI; build it second; never call it lossless.”
This module is that second direction, and it is honest about the loss:
export_pipeline returns an ExportReport whose degradations list
enumerates every feature that did not survive the round-trip, and the
emitted YAML carries the same notes as # degraded: comments. The caller
(and a future qed export CLI) surfaces them; nothing here pretends the
export is faithful.
§Two modes, picked automatically
- Portable — every step is a plain
StepKind::Subprocess. These map cleanly onto GHArun:steps, so the workflow runs the real build/test commands on a GitHub runner. This is the high-value case (acheck/smokepipeline becomes a usable GitHub workflow). - Wholesale shim — the pipeline has any native-only step kind
(
build-image,package-native-tarball,sub-pipeline,import, …). GitHub has no native equivalent and theyah qedCLI runs whole pipelines (not single steps), so the only honest emission is a workflow that checks out the repo and shellsyah qed run <name>— GitHub as a trigger that delegates to QED. Every native feature is recorded as a degradation.
Outcomes (Outcome::Publish and friends), pipeline-chain triggers,
LocalOnly placement, OnFail::Retry, and step produces are recorded as
degradations in either mode — a portable workflow still builds and tests,
it just doesn’t publish (content-addressed release stays native; the note
points the operator at yah qed run <name>).
Structs§
- Degradation
- One feature that did not survive the QED → GHA export. The
featuretag is a stable short identifier (outcome:publish,step-kind:build-image, …);detailis the human explanation that also rides the YAML as a comment. - Export
Report - The result of exporting a
Pipelineto GitHub Actions.
Functions§
- export_
pipeline - Export a QED
Pipelineto a GitHub Actions workflow, degrading every native-only feature explicitly. See the module docs for the two modes.