Skip to content

fix(advance-deploy-env): skip archived items; never let one item strand the push - #91

Merged
LukasWodka merged 1 commit into
developfrom
fix/advance-deploy-env-archived-skip
Jul 27, 2026
Merged

fix(advance-deploy-env): skip archived items; never let one item strand the push#91
LukasWodka merged 1 commit into
developfrom
fix/advance-deploy-env-archived-skip

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

The reusable advance-deploy-env workflow aborted its per-PR loop on the first project item it couldn't update. An archived item makes updateProjectV2ItemFieldValue error, and under set -euo pipefail that failed the whole step — so every PR after the archived one in the same push was left un-advanced. This is the root cause of promoted backend tickets sitting below Prod on the board even though they shipped.

Fix

  • Root cause: the projectItems query now selects isArchived, and archived cards are skipped up front with a ::notice:: (archived = intentionally out of the deploy flow).
  • Defense in depth: field updates go through an update_field helper that logs any other per-item error and flags the run, but never aborts the loop — one bad item can no longer strand the rest. The step still exits non-zero at the end if anything failed, so failures stay visible.

Test plan

  • actionlint clean locally + on CI.
  • Logic verified by inspection: archived items hit continue before any mutation; a transient error on item N no longer prevents items N+1… from advancing; RUN_FAILED surfaces real failures as a red run.
  • Board back-fill of the already-stranded items is done separately (data fix); this PR prevents recurrence.

Part of the RFC-BACKEND-0008 board hygiene follow-up.


Note

Low Risk
CI-only kanban automation with clearer skip/error handling; no application auth, data, or deploy paths change.

Overview
Fixes advance-deploy-env so a single un-updatable kanban card no longer stops every later PR in the same deploy push from advancing (the failure mode that left shipped tickets below Prod when an archived item appeared earlier in the loop).

The per-PR GraphQL query now reads isArchived; archived project items are skipped with a notice before any mutation. Deploy env and Status updates go through an update_field helper that logs per-item failures as warnings, sets a RUN_FAILED flag, and keeps the loop running under set -e. The step still exits non-zero at the end if anything failed, so partial success stays visible.

Reviewed by Cursor Bugbot for commit 2be818a. Bugbot is set up for automated code reviews on this repo. Configure here.

…nd the push

An archived project item cannot be updated -- the mutation errors, and under
`set -e` this aborted the whole step, leaving every PR after it in the push
un-advanced (this is how promoted items got stranded below Prod). Now:
- query isArchived and skip archived cards before mutating (root cause);
- wrap the field update so any unexpected per-item error is logged and flagged
  but does not abort the loop; the run still fails at the end if any item failed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@LukasWodka LukasWodka self-assigned this Jul 27, 2026
@LukasWodka
LukasWodka merged commit 2f6ee2e into develop Jul 27, 2026
5 checks passed
@LukasWodka
LukasWodka deleted the fix/advance-deploy-env-archived-skip branch July 27, 2026 15:49
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.

1 participant