ci: retire dead staging-deploy fossil + add prod deploy template - #338
Open
stkrolikiewicz wants to merge 1 commit into
Open
ci: retire dead staging-deploy fossil + add prod deploy template#338stkrolikiewicz wants to merge 1 commit into
stkrolikiewicz wants to merge 1 commit into
Conversation
stkrolikiewicz
added a commit
that referenced
this pull request
Jul 14, 2026
deploy-staging.yml + scripts/staging-deploy.sh were fossils (us-east-1 staging env gone: 0 stacks; dead staging-* tag trigger; bin/staging.ts + staging.json already removed). Add deploy-production.yml as a dispatch-only POST-LAUNCH template: build -> cdk diff -> manual approval gate -> per-stack deploy -> smoke. See task lore-0390.
stkrolikiewicz
force-pushed
the
ci/deploy-workflow-cleanup
branch
from
July 14, 2026 14:23
cc2f2fd to
d1aa049
Compare
karolko9
added a commit
that referenced
this pull request
Jul 22, 2026
Closed via the task's own option 4 / AC3 ("if not viable: task canceled
with documented rationale"), not by fiat.
The task shaves ~5 min off no-op deploys to a staging environment that
does not exist: task 0390 verified 0 `Explorer-staging-*` stacks in
us-east-1, and docs/deployment.md records production as the only
environment. The file it is blocked on, `.github/workflows/
deploy-staging.yml`, is being deleted by PR #338.
Cancelled rather than re-scoped because the idea does not transfer:
production deploys are manual and infrequent, so there are no no-op runs
to skip. The one durable finding — passing `-c galexieImageTag=$SHA`
makes `cdk diff` report a change on every commit, docs-only included —
is handed to 0103, which owns the production workflow.
Found while sweeping the 100 open tasks; the pre-pivot ones are where
this kind of rot concentrates.
karolko9
added a commit
that referenced
this pull request
Jul 22, 2026
Sweep of the 100 open tasks. Each claim below was re-verified against prod or the tree today before being written down; no verdict is carried over from the task text. Premise inverted or overtaken: - 0259: cites 49M rows in the NFT quarantine against empty canonical tables. Measured: nfts_pending 274, nft_ownership_pending 492, canonical nfts 13,053, nft_ownership 21,600. - 0088: assumes the parser/API tests do not exist. Counted: 890 Rust tests, 322 in xdr-parser, 244 in api. priority-high/effort-large now outranks genuinely open work. - 0215, 0211: both gate on "the price API does not exist yet". It does — 37 tables, 593.6M rows, 122,706 assets, history from 2024-02-20. - 0256: says to re-run compare_e11.py. That script is not in the repo and never was, across all refs. Half-done, scope narrowed: - 0310: the engine swap is already in place; the dead-column drop stands and is stronger than stated (25 non-zero of 361,015 rows). - 0103: 0390 covers the core workflow; ECR mirroring and the /health smoke test are not covered and remain here. Also records that 0390 is unmerged (PR #338). - 0313: the server half shipped with 0292; this is verification plus one CORS header. Verdict corrected against my own first pass: - 0322: the engine swap it asks for IS done, but the effect it promises is not. ledgers 25,983,782 rows vs 13,138,832 distinct = 1.98x; wasm_interface_metadata 1.43x. RMT only collapses when a merge runs, and prod never merges these to one part. The JOIN-doubling the task warns about is still live — so this task got more valuable, not less. - 0305: a grep for pool_ids hits three frontend files and looks done. It is not — the hit is a fallback `pool_ids: []`, plus two fixtures. Scheduling conflict recorded: - 0395: prod confirms deduplicate_merge_projection_mode exists on CH 26.3.10.60, so 0387's finding holds. If this lands, accounts_recent and its refresh disappear — which removes the thing 0428 wants to alert on. 0395 gates 0428.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
deploy-staging.yml— a fossil. It targeted a us-east-1 staging env (staging.json/Explorer-staging-*/staging.sorobanscan…with basic-auth) that no longer exists (verified:0Explorer-staging-*stacks in us-east-1). Trigger wasstaging-*tags (never pushed) → dead/unused.deploy-production.ymlas a POST-LAUNCH TEMPLATE — deliberately not wired in.Why
Prod runs in eu-central-1 (10
Explorer-production-*stacks), deployed manually viamake deploy-production-*. There was no automated prod-deploy path, and the staging workflow pointed at a torn-down environment — misleading.The new template (safe by design)
workflow_dispatchonly — won't auto-run; no push/tag triggers until a release cadence is decided.cdk diff(prints) → manual approval gate (productionenvironment, required reviewers) → deploy.--all— mirrors the operational lesson that a full compute deploy ships unrelated indexer/enrichment drift as a side effect. Supports--exclusively./health+ public frontend.Not enabled — prerequisites (post-launch, deliberate)
productionenvironment with required reviewers (the human gate).AWS_DEPLOY_ROLE_ARN,AWS_ACCOUNT_ID.make deploy-production-web).Header comment in the file documents all of the above. Until the environment + secrets exist and someone dispatches it, this file does nothing.