Summary
ci.yml lists closed in its pull_request.types, but both jobs skip on a closed event (validate has an explicit if guard, deploy needs validate). The problem: both the pull_request: closed event and the push-to-master event share the same concurrency group (CI-<workflow>-refs/heads/master). When a PR is merged, the closed event fires first, starts a CI run, then the push event fires and — because cancel-in-progress: true — cancels the already-running push/deploy job. The staging cleanup is handled separately by cleanup-staging.yml and does not need closed in ci.yml at all. Confirmed by the cancelled deploy run on PR #257 merge.
Priority
High
Acceptance criteria
Out of scope
- Consolidating cleanup logic into
ci.yml — cleanup-staging.yml handles this correctly already
Summary
ci.ymllistsclosedin itspull_request.types, but both jobs skip on a closed event (validatehas an explicitifguard,deployneedsvalidate). The problem: both thepull_request: closedevent and the push-to-master event share the same concurrency group (CI-<workflow>-refs/heads/master). When a PR is merged, the closed event fires first, starts a CI run, then the push event fires and — becausecancel-in-progress: true— cancels the already-running push/deploy job. The staging cleanup is handled separately bycleanup-staging.ymland does not needclosedinci.ymlat all. Confirmed by the cancelled deploy run on PR #257 merge.Priority
High
Acceptance criteria
closedremoved frompull_request.typesinci.ymlcleanup-staging.ymlstill fires and closes the staging environment on PR mergeOut of scope
ci.yml—cleanup-staging.ymlhandles this correctly already