build(workflows): don't fail process_metadata on non-YAML comments - #13860
Draft
Planeshifter wants to merge 1 commit into
Draft
build(workflows): don't fail process_metadata on non-YAML comments#13860Planeshifter wants to merge 1 commit into
process_metadata on non-YAML comments#13860Planeshifter wants to merge 1 commit into
Conversation
The job `Process Metadata` on workflow `process_metadata` failed on develop with `YAMLException: end of the stream or a document separator is expected` at the `Extract metadata` step (three runs, 2026-08-02 12:10:17-12:10:24 UTC, triggered by issue_comment events on the same commit). Root cause: the external `stdlib-js/metadata-action` step tries to parse the triggering comment body as YAML and throws an uncaught exception whenever the body isn't YAML-shaped (e.g., an ordinary markdown/prose bot comment), failing the whole job. This commit adds `continue-on-error: true` to `Extract metadata`, mirroring the existing pattern already used on `assert-write-access` in the same file, and gates the two downstream steps that consume its output (`Send tweets`, `Check metadata for workflow dispatch directives`) on `steps.extract-metadata.outcome == 'success'` so they no longer run against an empty/unset metadata value, so that a non-YAML comment body no longer fails the job. Ref: https://github.com/stdlib-js/stdlib/actions/runs/30747267016
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.
Resolves .
Description
This pull request:
process_metadataGitHub Actions workflow to no longer fail when the externalstdlib-js/metadata-actionstep throws on a non-YAML comment body.Failing run: https://github.com/stdlib-js/stdlib/actions/runs/30747267016 (also 30747264440, 30747262422 — same signature, same commit, 2026-08-02 12:10:17-12:10:24 UTC).
Symptom: The
Extract metadatastep crashes withYAMLException: end of the stream or a document separator is expected, failing the job.Root cause:
stdlib-js/metadata-actiontries to parse the triggering issue/PR comment body as YAML. Any comment that isn't YAML-shaped (e.g., an ordinary markdown/prose bot comment) throws an uncaught exception. We don't control that action's source, so the fix lives entirely in our own workflow YAML.Fix: Adds
continue-on-error: truetoExtract metadata, mirroring the identical pattern already used onassert-write-accessin the same file (same rationale: don't fail the job/spam failure e-mails over an expected, benign case). Gates the two downstream steps that consumesteps.extract-metadata.outputs.metadata(Send tweets,Check metadata for workflow dispatch directives) onsteps.extract-metadata.outcome == 'success'so they no longer execute against an empty/unset value.Dispatch workflow with inputsneeds no change — it's already transitively gated oncheck-workflow-dispatch's output.Related Issues
None.
Questions
No.
Other
Validation: YAML syntax validated (
yaml.safe_load). Reviewed by three independent passes:outcome(notconclusion) in the new gates, which is the detail that determines whether the fix actually works; traced the empty-METADATApath throughjqand confirmed it exits cleanly..github/workflows/for any workflow depending on this job's pass/fail viaworkflow_run/needs(none found), confirmed the diff touches only the intended 3 lines.assert-write-accessprecedent exactly.Reviewer notes: Two independent, non-blocking observations from reviewers A and B:
continue-on-erroris unconditional, so it also applies to thepush-triggered runs of this workflow (which parse commit-message metadata, not comment bodies) — a genuinely malformed metadata block in a commit message would now silently no-op instead of failing loudly, an observability trade-off. Also, the step now conflates "expected non-YAML comment" with "a real regression inmetadata-action" — both go green. Left as-is to keep this fix minimal and targeted at the actually-observed failure mode; a maintainer may want a follow-up::warningstep or scopingcontinue-on-errortoissue_commentonly if either trade-off matters.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was written by an automated CI-fix routine running Claude Code. The routine identified the failure cluster from live GitHub Actions job logs, traced the root cause to the external
metadata-action's lack of YAML-parse error handling, applied the minimal in-repo workflow fix, and validated it via three independent automated review passes (correctness, regression scope, style) before opening this PR.@stdlib-js/reviewers
Generated by Claude Code