PowerCraft.Release
1.2.0
Universal release automation for PowerShell modules, .NET projects, Node.js packages, and Python projects. Provides version detection, bumping, validation, and publishing across ecosystems.
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2026 The Code Kitchen. All rights reserved.
Package Details
Author(s)
- The Code Kitchen
Tags
Release Versioning SemVer CI-CD Automation PowerCraft
Functions
Get-PCProjectVersion Set-PCProjectVersion Get-PCNextVersion Test-PCReleaseReady Publish-PCRelease Install-PCReleaseWorkflow
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## 1.2.0 (2026-07-01)
### Changed
- Unified extensibility model: hooks replace token-generated code blocks
- {{SECRETS_BOOTSTRAP}} token removed — replaced by {{SECRETS_ENV}} (job-level env from config)
- Secrets now declared in .powercraft/release.json ci.secrets array (data-driven)
- Hook steps use hashFiles() conditional: test-setup.ps1, test-secrets.ps1, test-validate.ps1
- Get-SecretBootstrapBlock removed — replaced by Get-SecretsEnvBlock (config-driven)
### Added
- .github/test-secrets.ps1 hook convention (project owns secret bootstrap logic)
- .github/test-validate.ps1 hook convention (post-test extended validation)
- Get-SecretsEnvBlock: renders job-level env block from ci.secrets config
## 1.1.0 (2026-06-28)
### Added
- Stage-gated release: validate job must pass before publish job runs
- .github/test-setup.ps1 hook convention for project-specific test dependencies
- Test Setup step in ci.yml and release.yml templates
- Install Dependencies step in publish job (fixes RequiredModules validation)
- GitHub Release via softprops/action-gh-release in publish job
- -CreateGitHubRelease parameter (opt-in, replaces -SkipGitHubRelease)
## 1.0.0 (2026-06-26)
### Added
- Multi-technology template engine with {{TOKEN}} resolution
- Templates/powershell/ and Templates/shared/ folder structure
- Resolve-TemplateTokens: generic token replacement engine
- Read-PCReleaseConfig: optional .powercraft/release.json per-repo overrides
- {{MODULE_NAME}}, {{RUNNER}}, {{DEFAULT_BRANCH}} tokens in CI template
- dependency-check.yml only installed when RequiredModules present
- Version stamp header on all generated workflows
- Disabled template support via config
### Fixed
- ci.yml {{MODULE_NAME}} token was never resolved (copied as-is)
### Changed
- Install-PCReleaseWorkflow now uses Get-ProjectType for technology detection
- Templates restructured into technology-specific subfolders
FileList
- PowerCraft.Release.nuspec
- CHANGELOG.md
- LICENSE
- PowerCraft.Release.psd1
- PowerCraft.Release.psm1
- Private\Get-ProjectType.ps1
- Private\Get-SecretsEnvBlock.ps1
- Private\Get-SemanticVersion.ps1
- Private\GitHelpers.ps1
- Private\Read-PCReleaseConfig.ps1
- Private\Read-ProjectVersion.ps1
- Private\Resolve-TemplateTokens.ps1
- Private\Write-ProjectVersion.ps1
- Public\Get-PCNextVersion.ps1
- Public\Get-PCProjectVersion.ps1
- Public\Install-PCReleaseWorkflow.ps1
- Public\Publish-PCRelease.ps1
- Public\Set-PCProjectVersion.ps1
- Public\Test-PCReleaseReady.ps1
- README.md
- Templates\powershell\ci.yml
- Templates\powershell\release.yml
- Templates\shared\dependency-check.yml
- Templates\shared\workflow-freshness.yml
- tests\PowerCraft.Release.Tests.ps1