Skip to content

build(workflows): don't fail process_metadata on non-YAML comments - #13860

Draft
Planeshifter wants to merge 1 commit into
developfrom
claude/elegant-feynman-96tc8g
Draft

build(workflows): don't fail process_metadata on non-YAML comments#13860
Planeshifter wants to merge 1 commit into
developfrom
claude/elegant-feynman-96tc8g

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Resolves .

Description

What is the purpose of this pull request?

This pull request:

  • Fixes the process_metadata GitHub Actions workflow to no longer fail when the external stdlib-js/metadata-action step 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 metadata step crashes with YAMLException: end of the stream or a document separator is expected, failing the job.

Root cause: stdlib-js/metadata-action tries 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: true to Extract metadata, mirroring the identical pattern already used on assert-write-access in 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 consume steps.extract-metadata.outputs.metadata (Send tweets, Check metadata for workflow dispatch directives) on steps.extract-metadata.outcome == 'success' so they no longer execute against an empty/unset value. Dispatch workflow with inputs needs no change — it's already transitively gated on check-workflow-dispatch's output.

Related Issues

Does this pull request have any related issues?

None.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Validation: YAML syntax validated (yaml.safe_load). Reviewed by three independent passes:

  • Correctness (opus): approve. Confirmed the fix uses step outcome (not conclusion) in the new gates, which is the detail that determines whether the fix actually works; traced the empty-METADATA path through jq and confirmed it exits cleanly.
  • Regression scope (opus): approve. Confirmed the happy path (~90% of runs) is a strict no-op, searched .github/workflows/ for any workflow depending on this job's pass/fail via workflow_run/needs (none found), confirmed the diff touches only the intended 3 lines.
  • Style/conventions (sonnet): approve. Confirmed comment wording, indentation, and quoting match the file's existing assert-write-access precedent exactly.

Reviewer notes: Two independent, non-blocking observations from reviewers A and B: continue-on-error is unconditional, so it also applies to the push-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 in metadata-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 ::warning step or scoping continue-on-error to issue_comment only if either trade-off matters.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants