Skip to content

[193] Deploy the dev environment from development via CI - #210

Merged
slesaad merged 14 commits into
developmentfrom
feature/193-dev-deploy-ci
Jul 23, 2026
Merged

[193] Deploy the dev environment from development via CI#210
slesaad merged 14 commits into
developmentfrom
feature/193-dev-deploy-ci

Conversation

@CarsonDavis

@CarsonDavis CarsonDavis commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

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):

  • Trigger: deploy on push to development (manual dispatch kept; dead release trigger removed)
  • Image tags: always mmgis:<commit short SHA> — never a branch/release name (immutable, identifies its commit, no mutable-tag no-op rollouts)
  • Rollout poll rewritten for the current Express Mode API (status.statusCode + activeConfigurations convergence; the old deployments[].rolloutState no longer exists), with transient-error retry
  • update-express-gateway-service call fixed for current CLIs (no --cluster — the service ARN fully qualifies)
  • Run summary now shows the deployed image and the rollout status — only values CI itself produces
  • README: corrected the stale update-service claim

First merge to development will be the first push-triggered run — the one remaining untested trigger path.

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.
@CarsonDavis CarsonDavis linked an issue Jul 21, 2026 that may be closed by this pull request
8 tasks
@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown

✅ Version Already Updated

This PR includes a manual version update to 4.2.20-20260722

No automatic version bump needed.

CarsonDavis and others added 4 commits July 21, 2026 15:56
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.
@github-actions

Copy link
Copy Markdown

🤖 Version Auto-Bumped

The version has been automatically incremented to 4.2.20-20260722

This commit was added to your PR branch. When you merge this PR, the new version will be included.


If you want a different version, update package.json manually and push to this PR.

The summary now carries only what CI itself produces (image URI, rollout
status). The admin URL is read from `terraform output admin_url` or the
CloudFront console; a hand-maintained repo variable inevitably goes stale
at environment rebuild and a wrong URL in an official-looking summary is
worse than none.
@CarsonDavis
CarsonDavis requested a review from slesaad July 22, 2026 18:37
@CarsonDavis
CarsonDavis marked this pull request as ready for review July 22, 2026 18:37
@slesaad
slesaad merged commit e45add3 into development Jul 23, 2026
8 checks passed
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.

Deploy the lean dev environment officially from development via CI

2 participants