mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-14 11:17:35 +00:00
## Symptom When the auto-backport workflow (`.github/workflows/pr-backport.yaml`) hits a cherry-pick **conflict**, it is supposed to comment on the original PR telling the author to backport manually. On PR #13359 (backport to `cloud/1.45`, cherry-pick of `d6c582c39` conflicting on `useSubscriptionDialog.test.ts`) **no comment was posted** — the author (@huntcsg) got no notification and had to find the failure by digging into Actions logs. See run [28616756256](https://github.com/Comfy-Org/ComfyUI_frontend/actions/runs/28616756256/job/84862400420). ## Root cause The "Comment on failures" step actually ran and reached the `conflicts` branch — the failure reason *was* populated and the `if:` condition *was* met. The real failure is at the last line of the loop, under the step's default `bash -e` shell: ```yaml gh pr comment "${PR_NUMBER}" --body "${COMMENT_BODY}" ``` The job log ends with: ``` GraphQL: Unable to create comment because issue is locked (addComment) ##[error]Process completed with exit code 1. ``` PR #13359 is `locked: true`, so `gh pr comment` returns non-zero. Because the call was unguarded under `set -e`, the step aborted on the spot: the comment was lost and — critically for the general case — any remaining failed targets in the loop would also be skipped. The step is then marked failed with no actionable output on the PR. (Related PR #13167 "attempt each backport target branch independently" is still open/unmerged; this is a residual gap in the failure-comment path.) ## Fix Wrap every `gh pr comment` call in a `post_comment` helper. On failure it emits a `::warning::` naming the target, the reason, and the manual-backport branch (`backport-<pr>-to-<target>`) instead of aborting, so the loop always attempts a comment for each failed target and surfaces a clear log message when GitHub refuses (e.g. locked issue). The conflict comment body now also states the manual backport branch explicitly. - YAML: `python3 -c 'import yaml; yaml.safe_load(...)'` passes. - `actionlint`: no new warnings in the changed step (the 2 pre-existing `SC2016` notes on the intentional single-quoted `envsubst` var lists are unchanged). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GitHub Workflows
Naming Convention
Workflow files follow a consistent naming pattern: <prefix>-<descriptive-name>.yaml
Category Prefixes
| Prefix | Purpose | Example |
|---|---|---|
ci- |
Testing, linting, validation | ci-tests-e2e.yaml |
release- |
Version management, publishing | release-version-bump.yaml |
pr- |
PR automation (triggered by labels) | pr-claude-review.yaml |
api- |
External Api type generation | api-update-registry-api-types.yaml |
i18n- |
Internationalization updates | i18n-update-core.yaml |
Documentation
Each workflow file contains comments explaining its purpose, triggers, and behavior. For specific details about what each workflow does, refer to the comments at the top of each .yaml file.
For GitHub Actions documentation, see Events that trigger workflows.