[193] Deploy the dev environment from development via CI#210
[193] Deploy the dev environment from development via CI#210CarsonDavis wants to merge 10 commits into
Conversation
Replace the release/workflow_dispatch triggers with push to development (keeping manual dispatch), tag every build with the commit short SHA, and write a run summary with the deployed image URI and the ADMIN_URL repo variable. Correct the infrastructure README's stale update-service claim to the Express Mode update-express-gateway-service call.
Guard the summary step with !cancelled() plus a non-empty IMAGE_URI so a failed or timed-out rollout still records the image already pushed to ECR, and report the job status on a Rollout line so such runs don't read as completed deploys. Document the optional ADMIN_URL variable in the infrastructure README's workflow-configuration list.
… build tsconfig targets ES2020, where String.replaceAll does not exist; the error only surfaces in the Docker production build. Use split/join instead. Swept src/ for other ES2021+ methods (replaceAll, .at(), Object.hasOwn, structuredClone) — none found. tsc --noEmit passes clean.
…m the CLI) Current AWS CLIs reject --cluster on update-express-gateway-service — the synopsis is service-ARN only, the ARN fully qualifying the target. The June-era CLI accepted it. The describe-services name-to-ARN resolution keeps its --cluster (that API needs it), so ECS_CLUSTER stays in the step's env.
The current describe-express-gateway-service response has no deployments[].rolloutState — the old poll printed None for 80 attempts and timed out. Poll convergence instead: statusCode ACTIVE and every activeConfigurations[] primary-container image equal to the target (old and new revisions are both listed until the old one drains). statusCode has no failure value (ACTIVE | DRAINING | INACTIVE per the CLI help), so the FAILED branch is gone and the 20-minute timeout is the failure bound. Each attempt logs status plus the active images.
A failed describe-express-gateway-service call under the step's -e / pipefail killed the whole rollout step; now it costs one attempt and retries. The 20-minute timeout message reports the images still being served so an Express Mode auto-rollback (settles ACTIVE on the old image) is diagnosable from the log.
✅ Version Already UpdatedThis PR includes a manual version update to No automatic version bump needed. |
Reviewer's guide to this diffA diff explainer for anyone reviewing cold. Everything here was shaken out by two live dispatched runs from this branch (linked in the PR body) — each change maps to something those runs actually hit. How to read this diff (2–3 minutes)Read Hunk by hunkTrigger: Image tag: always the commit short SHA. Previously release runs tagged with the release name and only dispatch runs used the SHA. Team decision (2026-07-16): every trigger tags Rollout poll rewrite. The old poll read
New "Write deployment summary" step. Team decision from #193: every run must surface where it deployed, so anyone can open the run in Actions and find the admin URL. It writes image URI, rollout status, and README. Syncs the doc to reality: push-trigger instead of release, What to scrutinize
What's deliberately NOT here
|
Follow-up to #157's rename: the profile is full-demo, the regeneration command in the how-to was stale, and 'dev deployments boot from it' now says local dev deployments — the deployed dev environment (this PR's subject) keeps its own persistent database and does not reseed.
The review-round trim (32851fb) excluded 13 classic-era tools and removed their defaults blocks; the ADR still said only Draw was excluded and that it declared defaults.
Closes #193
Turns on the CI deploy pipeline for the dev environment. The AWS side (IAM permission, Actions variables/secret) is already configured; this PR carries the workflow changes, proven by two consecutive fully-green dispatched runs from this branch (run 1, run 2) — the dev environment currently serves the image built from this branch's head.
Changes (
.github/workflows/deploy-lean.yml+ one README fix):development(manual dispatch kept; dead release trigger removed)mmgis:<commit short SHA>— never a branch/release name (immutable, identifies its commit, no mutable-tag no-op rollouts)status.statusCode+activeConfigurationsconvergence; the olddeployments[].rolloutStateno longer exists), with transient-error retryupdate-express-gateway-servicecall fixed for current CLIs (no--cluster— the service ARN fully qualifies)update-serviceclaimFirst merge to
developmentwill be the first push-triggered run — the one remaining untested trigger path.