Rework publish pipeline as a build matrix - #562
Open
alexolivier wants to merge 1 commit into
Open
Conversation
Signed-off-by: Alex Olivier <alex@alexolivier.me>
alexolivier
marked this pull request as ready for review
July 23, 2026 17:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem / Intent
The publish workflow repeats the same convert → render → upload block once per document (8 copies and growing), and the publish job downloads each artifact with its own step. Adding a document means copy-pasting ~25 lines across two jobs, and it's easy to miss one — the COAZ-MCP binding was built but not deployed until #560 added the missing download step.
Approach
Turn the document list into data:
build-rfcis now a matrix where each document is a 3-line entry (artifact name, source markdown, output HTML name), sharing a single render/upload step sequence. The main spec'sindex.htmlcopy is a matrix field rather than a dedicated step. Each leg uploads anrfc-*artifact whose layout mirrors the published paths, so the publish job collects everything with one pattern download — a new document can never be built-but-not-published again. The archived 0_0 submission is copied straight from the checkout instead of round-tripping through an artifact.Published output is unchanged: same HTML filenames at the site root, same XML paths,
index.htmlstill the working draft (verified the artifact layout against the live site's published paths, plus an end-to-end render of the main spec with the same tool versions).Documents now build in parallel with
fail-fast: false, so one broken document doesn't mask errors in the others. Note the check names change frombuild-rfctobuild-rfc (<doc>)— if branch protection pins the old name, it will need updating.