Fix CI failure reporting and interrupted draft uploads - #2877
Merged
Conversation
alixander
force-pushed
the
agent/ci-recovery-fixes
branch
from
September 7, 2026 15:47
68d4a14 to
a8679da
Compare
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.
Human
AI
Fix two cases where CI could report success without doing the expected work: changed
.d2files were skipped by formatting, and completed background failures could disappear before their status was collected. Adopt the shared helper from d2lang/ci#38 and migrate parallel release builds to its explicit job launcher. Merge the helper PR first.Allow draft upload retries to recover zero-byte GitHub
starterplaceholders left by failed uploads. Check every expected asset before cleanup, then recheck the draft, placeholder identity, and tag before deleting only that placeholder. Completed assets still require matching bytes and are never overwritten. Correct the recovery documentation about same-name Actions artifacts on reruns.Remove D2's
nofixupsworkflow job and implicit enforcement through cleanup/notifications. The requirednofixupsstatus check has also been removed from master protection; the existingcirequirement and other protection settings are unchanged.Validation: shared helper CI and sh/dash regression suites pass; all 18 uploader tests and release-tool Go tests pass; actionlint passes; full local D2 make (Go, WASM, JavaScript, and installed-package tests) and Linux/amd64 release archive verification pass. The PR includes current master and preserves its Discord notification removal. On exact head
a8679da, hosted CI and signature checks passed, all six release archives and native SVG/PNG smoke tests passed, and the Windows MSI build passed. Release-writing jobs are intentionally skipped for PRs.