Skip to content

chore(infra) migrate to Deployment Stacks; fix web test FQDN; add enforcement#216

Merged
jkeeley2073 merged 1 commit into
mainfrom
Dev-DeploymentStacks
May 15, 2026
Merged

chore(infra) migrate to Deployment Stacks; fix web test FQDN; add enforcement#216
jkeeley2073 merged 1 commit into
mainfrom
Dev-DeploymentStacks

Conversation

@jkeeley2073
Copy link
Copy Markdown
Contributor

Summary

Deployment Stacks migration — plain az deployment sub create silently orphans any resource removed from Bicep; Deployment Stacks (az stack sub create) delete orphans automatically on the next deploy.

Web test FQDN fix — previous deploy (#215) failed with BadRequest: Value cannot be null. Parameter name: format because wizardApp!.properties.configuration.ingress.fqdn is a runtime property that ARM couldn't resolve when both the web test and the container app were being evaluated in the same deployment pass.

  • infra/modules/shared.bicep: wizardFqdn var now constructs the FQDN as ${wizardContainerAppName}.${acaEnvironment!.properties.defaultDomain}. The ACA environment's defaultDomain is set at creation time and is stable; the formula {appName}.{env.defaultDomain} is identical to what ACA assigns for configuration.ingress.fqdn.

Pre-push audit

  • Identity: Jim Keeley <94459922+jkeeley2073@users.noreply.github.com>
  • az bicep build — clean ✅
  • dotnet build — zero warnings ✅
  • grep "az deployment sub create\|az deployment group create" infra/scripts/ — only doc comment hits, no live commands ✅

🤖 Generated with Claude Code

…orcement

Deployment Stacks (CLAUDE.md invariant #16 + PR self-audit item #11):
- infra/scripts/Deploy-SharedResources.ps1: replace `az deployment sub create`
  and `az deployment sub what-if` with `az stack sub create` (stable stack name
  `pinwiz-shared-{env}`, not timestamped; --action-on-unmanage deleteResources so
  resources removed from Bicep are deleted on next deploy; --deny-settings-mode
  none; outputs read from `az stack sub show`). Requires az >= 2.61.
- CLAUDE.md: locked invariant #16 — Deployment Stacks only; PR self-audit
  item #11 — grep `infra/scripts/` for `az deployment` as a 🔴 check.

Web test FQDN fix (previously caused BadRequest: Value cannot be null):
- infra/modules/shared.bicep: wizardFqdn var now constructs the ACA FQDN
  as `${wizardContainerAppName}.${acaEnvironment!.properties.defaultDomain}`
  rather than reading `wizardApp!.properties.configuration.ingress.fqdn`.
  Reading a runtime property from a conditionally-deployed resource at ARM
  evaluation time was unreliable when both resources deploy in the same pass.
  The constructed form is identical (ACA always uses {appName}.{env.defaultDomain})
  and resolves cleanly from the stable environment resource.
@jkeeley2073 jkeeley2073 added the claude-code Generated with Claude Code label May 15, 2026
@github-actions
Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
PinballWizard.Application 88% 81% 1184
PinballWizard.Web 74% 72% 513
PinballWizard.Api 84% 73% 69
PinballWizard.Infrastructure 66% 67% 1856
PinballWizard.Core 77% 100% 62
Summary 74% (7602 / 10238) 73% (2455 / 3367) 3684

Minimum allowed line rate is 70%

@jkeeley2073 jkeeley2073 merged commit 53bbe76 into main May 15, 2026
9 checks passed
@jkeeley2073 jkeeley2073 deleted the Dev-DeploymentStacks branch May 15, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-code Generated with Claude Code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant