Skip to content

chore: add CI and prepare v0.2.0 release#29

Merged
haflidif merged 2 commits into
mainfrom
chore/ci-and-v0.2.0
Jul 2, 2026
Merged

chore: add CI and prepare v0.2.0 release#29
haflidif merged 2 commits into
mainfrom
chore/ci-and-v0.2.0

Conversation

@haflidif

@haflidif haflidif commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Adds the first CI workflow and prepares the v0.2.0 cut.

CI (.github/workflows/ci.yml)

  • Parse under Windows PowerShell 5.1 — the toolkit's compatibility target — so any ternary / ??\ / parse regression fails the build.
  • PS7-only syntax scan (??).
  • PSScriptAnalyzer against a checked-in \PSScriptAnalyzerSettings.psd1. Build fails on parse errors or Error-severity findings (currently 0); Warnings are surfaced as annotations for triage. The settings exclude rules that don't fit an interactive Reader-only CLI toolkit (console \Write-Host, positional args to external \�z\ calls, established plural/verb command names shipped in v0.1.0).

Cleanup

  • Removed dead code flagged by the analyzer: unused \\ (Get-RegionFootprint.ps1, recomputed as \) and \\ (Get-SkuCatalogue.ps1). No behaviour change.

Release prep

  • README CI badge.
  • CHANGELOG: [0.2.0] - 2026-07-02\ cut from [Unreleased], fresh scaffold + compare links.

Merging once CI is green (this PR validates the workflow end-to-end).

- Add GitHub Actions CI (.github/workflows/ci.yml): parse every script
  under Windows PowerShell 5.1, scan for PS7-only syntax, and run
  PSScriptAnalyzer against a checked-in PSScriptAnalyzerSettings.psd1.
  Build fails on parse errors or Error-severity findings; Warnings are
  surfaced as annotations. The analyzer settings exclude rules that do
  not fit an interactive Reader-only CLI toolkit (Write-Host console UX,
  positional args to external az calls, established plural/verb command
  names).
- Remove dead code flagged by the analyzer: unused \ in
  Get-RegionFootprint.ps1 and \ in Get-SkuCatalogue.ps1.
- Add a CI status badge to the README.
- CHANGELOG: cut [0.2.0] - 2026-07-02 from [Unreleased], add a fresh
  [Unreleased] scaffold and Keep-a-Changelog compare links.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@haflidif haflidif requested review from a team as code owners July 2, 2026 11:18
…hell 5.1-safe

The new CI parse gate (Windows PowerShell 5.1) surfaced two scripts that
did not actually run under the toolkit's stated 5.1 compatibility target:

- Deploy-QuotaGroups.ps1 used PowerShell 7-only ternary (? :) and
  null-coalescing (??) operators in seven places, so it failed to parse
  under 5.1. Rewrote all as 5.1-safe if/else expressions.
- New-EnablementRequest.ps1 contained a lone non-ASCII em-dash with no
  BOM, which Windows PowerShell 5.1 decoded as ANSI and mis-tokenised.
  Replaced with an ASCII hyphen so the file stays pure ASCII like every
  other script in the toolkit.

Verified: all 28 scripts now parse cleanly under Windows PowerShell
5.1.26100, repo is pure ASCII, 0 PSScriptAnalyzer error-severity findings.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@haflidif haflidif merged commit 0efa163 into main Jul 2, 2026
2 checks passed
@haflidif haflidif deleted the chore/ci-and-v0.2.0 branch July 2, 2026 11:24
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.

1 participant