ci(ci): update Close Topics workflow to handle Review issues and clarify descriptions

This commit is contained in:
Prad Nukala committed 2026-09-30 16:23:52 -04:00
1 parent b2dffa4615
commit 1d77c5a8b5
2 files changed
+17 -9

No files matched your search

+6 -3
View File
@@ -66,9 +66,12 @@ jobs:
# tagged at the instant the last core problem closed. It reads the same rule # tagged at the instant the last core problem closed. It reads the same rule
# close-topics uses (apps/cli/topics.ts) straight off the sub-issues, so the # close-topics uses (apps/cli/topics.ts) straight off the sub-issues, so the
# push that finishes a topic releases it in this run — no waiting for Close # push that finishes a topic releases it in this run — no waiting for Close
# Topics, which chains after this workflow. Reconciling: a run releases # Topics, which chains after this workflow. A problem re-parented into a
# every finished topic still missing one, so a manual dispatch backfills and # `Review <N> — <Phase>` issue still belongs to its topic (recovered from
# a problem closed by hand in the UI is picked up by the next run. # its parent_issue_removed event), so moving it never rewrites a release.
# Reconciling: a run releases every finished topic still missing one, so a
# manual dispatch backfills and a problem closed by hand in the UI is picked
# up by the next run. Closing a finished Review issue is Close Topics' job.
release: release:
needs: close needs: close
# Like close-topics: a partially failed close still closed some issues, # Like close-topics: a partially failed close still closed some issues,
+11 -6
View File
@@ -1,9 +1,14 @@
name: Close Topics name: Close Topics
# No D1 push here, unlike Close Solved: D1 stores no topic completion column. # Closes finished topics AND finished `Review <N> — <Phase>` issues (every
# Phase progress, the gate pools and the charts all derive from the problem # sub-issue closed). Problems moved from a topic into a Review issue still
# rows, which close-solved already logs — a topic is finished exactly when its # count toward that topic (apps/cli/topics.ts).
# core problems are, so there is nothing left to reconcile. #
# No D1 push here, unlike Close Solved: D1 stores no topic or review
# completion column. Phase progress, the gate pools and the charts all derive
# from the problem rows, which close-solved already logs — a topic or review
# is finished exactly when its problems are, so there is nothing left to
# reconcile.
on: on:
# Close Solved closes problem issues with GITHUB_TOKEN, and token-driven # Close Solved closes problem issues with GITHUB_TOKEN, and token-driven
@@ -19,7 +24,7 @@ on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
dry_run: dry_run:
description: Report finished topics without closing anything description: Report finished topics and reviews without closing anything
type: boolean type: boolean
default: false default: false
@@ -34,7 +39,7 @@ concurrency:
jobs: jobs:
close: close:
# The `issues` trigger fires for every issue in the repo; only closing a # The `issues` trigger fires for every issue in the repo; only closing a
# problem sub-issue can ever complete a topic's core set. # problem sub-issue can ever complete a topic's core set or a review.
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'problem') if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'problem')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps: