Skip to content

feat: prerelease support, CI/CD branching & PSScriptAnalyzer#9

Merged
yfridelance merged 1 commit into
developfrom
feat/prerelease-support
Feb 26, 2026
Merged

feat: prerelease support, CI/CD branching & PSScriptAnalyzer#9
yfridelance merged 1 commit into
developfrom
feat/prerelease-support

Conversation

@yfridelance
Copy link
Copy Markdown
Owner

Summary

  • Prerelease Support: Update-ManifestField can now set/clear the Prerelease field in .psd1 manifests. build.ps1 gains a -Prerelease parameter for prerelease builds.
  • CI/CD Branching: Workflow split into test (3-way matrix: ubuntu/pwsh, windows/pwsh, windows/ps5.1) + build-and-publish jobs. develop pushes publish prerelease versions (preview{N}), main pushes publish stable versions.
  • PSScriptAnalyzer: Added to CI test matrix. Fixed 13 findings (BOM encoding, trailing whitespace, automatic variable). Intentional suppressions (ShouldProcess on private helpers, plural nouns) via settings file.
  • CI Hardening: Pester/PSSA caching, DOTNET_CLI_UI_LANGUAGE=en, skip-duplicate (409) handling.
  • Tests: 5 new Prerelease tests added (306 total, all passing).

Test plan

  • 306/306 Pester tests pass locally
  • PSScriptAnalyzer: 0 violations with settings file
  • ./build.ps1 -Clean succeeds (dogfooding)
  • ./build.ps1 -Clean -Prerelease 'preview1' sets Prerelease correctly in dist manifest
  • CI test matrix passes (ubuntu/pwsh, windows/pwsh, windows/ps5.1)
  • Develop push triggers prerelease publish to PSGallery
  • Main push triggers stable publish to PSGallery

🤖 Generated with Claude Code

Prerelease Support:
- Uncomment Prerelease field in .psd1 manifest and fixtures
- Add 'Prerelease' to Update-ManifestField ValidateSet with PSGallery validation
- Add 'Prerelease' to $Script:SupportedManifestFields
- Add -Prerelease parameter to build.ps1 for prerelease builds

CI/CD Enhancements:
- Split workflow into test (matrix) + build-and-publish (single runner) jobs
- Add develop branch triggers for prerelease publishing
- Add PS 5.1 matrix entry (windows-latest/powershell)
- Add Pester + PSScriptAnalyzer caching (actions/cache)
- Add PSScriptAnalyzer step to test job
- Set Prerelease tag on develop push, strip on main push
- Add DOTNET_CLI_UI_LANGUAGE=en for publish step
- Add skip-duplicate (409) error handling for Publish-Module

Code Quality:
- Fix UTF-8 BOM encoding on 7 private function files
- Fix trailing whitespace in .psd1
- Rename $Matches to $AliasMatches in Get-AliasesFromFile (automatic variable)
- Add PSScriptAnalyzerSettings.psd1 with intentional suppressions

Tests:
- Add 5 new Prerelease tests for Update-ManifestField (306 total)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@yfridelance yfridelance merged commit feae5a1 into develop Feb 26, 2026
@yfridelance yfridelance deleted the feat/prerelease-support branch February 26, 2026 17:56
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