Command
Invoke-PowerForgeRelease
Executes the unified repository release workflow from a JSON configuration.
Syntax
Invoke-PowerForgeRelease [-AdoptExistingAppleBuild] [-AllowManifestOutsideProjectRoot] [-AllowOutputOutsideProjectRoot] [-AppleAction <PowerForgeAppleReleaseAction>] [-AppleExpectedPlanSha256 <String>] [-ApplePollIntervalSeconds <Int32>] [-AppleProcessingTimeoutSeconds <Int32>] [-AppleResume] [-AppleShipAppStoreTarget <String[]>] [-AppleShipSyncScreenshots] [-AppleShipTestFlightTarget <String[]>] [-AppleSourceCommit <String>] [-AppleSummary] [-AppleVersion <String>] [-AppleWaitForProcessing] [-ChecksumsPath <String>] [-ConfigPath <String>] [-Configuration <String>] [-ConfirmAppleAction] [-ExitCode] [-Flavors <SingleContained|SingleFx|Portable|Fx>] [-Frameworks <String[]>] [-InstallerProperty <String[]>] [-KeepSymbols] [-ManifestJsonPath <String>] [-ModuleCertificateThumbprint <String>] [-ModuleDiagnosticsBaselinePath <String>] [-ModuleFailOnDiagnosticsSeverity <Warning|Error>] [-ModuleFailOnNewDiagnostics <Boolean>] [-ModuleFramework <auto|net10.0|net8.0>] [-ModuleGenerateDiagnosticsBaseline <Boolean>] [-ModuleNoDotnetBuild] [-ModuleNoSign] [-ModuleOnly] [-ModulePreReleaseTag <String>] [-ModuleRunMode <Manifest|Documentation|Build|Publish>] [-ModuleSignIncludeBinaries <Boolean>] [-ModuleSignIncludeExe <Boolean>] [-ModuleSignIncludeInternals <Boolean>] [-ModuleSignModule] [-ModuleSkipInstall] [-ModuleTimeoutSeconds <Int32>] [-ModuleUpdateDiagnosticsBaseline <Boolean>] [-ModuleVersion <String>] [-NoAppleResume] [-NoAppleWaitForProcessing] [-NoInteractive] [-OutputRoot <String>] [-PackageSignStore <CurrentUser|LocalMachine>] [-PackageSignThumbprint <String>] [-PackageSignTimestampUrl <String>] [-PackagesOnly] [-Plan] [-PublishNuget] [-PublishProjectGitHub] [-PublishToolGitHub] [-ReleaseVersion <String>] [-Runtimes <String[]>] [-Sign] [-SignCsp <String>] [-SignDescription <String>] [-SignKeyContainer <String>] [-SignOnFailure <Warn|Fail|Skip>] [-SignOnMissingTool <Warn|Fail|Skip>] [-SignProfile <String>] [-SignSubjectName <String>] [-SignThumbprint <String>] [-SignTimeoutSeconds <Int32>] [-SignTimestampUrl <String>] [-SignToolPath <String>] [-SignUrl <String>] [-SkipBuild] [-SkipReleaseChecksums] [-SkipRestore] [-SkipToolOutput <Tool|Portable|Installer|Store>] [-SkipWingetSubmit] [-SkipWorkspaceValidation] [-StageRoot <String>] [-Styles <DotNetPublishStyle[]>] [-SubmitWinget] [-Target <String[]>] [-ToolOutput <Tool|Portable|Installer|Store>] [-ToolsOnly] [-Validate] [-WingetAllowInteractiveAuthentication] [-WingetOpenBrowser] [-WingetPullRequestTitle <String>] [-WingetReplace] [-WingetReplaceVersion <String>] [-WingetSubmitMode <Manifest|Update>] [-WingetTimeoutSeconds <Int32>] [-WingetTokenEnvName <String>] [-WingetTokenFilePath <String>] [-WingetToolPath <String>] [-WorkspaceConfigPath <String>] [-WorkspaceDisableFeature <String[]>] [-WorkspaceEnableFeature <String[]>] [-WorkspaceProfile <String>] [-WorkspaceTestimoXRoot <String>] [<CommonParameters>]#Parameter set:
ConfigInvoke-PowerForgeRelease [-AdoptExistingAppleBuild] [-AllowManifestOutsideProjectRoot] [-AllowOutputOutsideProjectRoot] [-AppleAction <PowerForgeAppleReleaseAction>] [-AppleExpectedPlanSha256 <String>] [-ApplePollIntervalSeconds <Int32>] [-AppleProcessingTimeoutSeconds <Int32>] [-AppleResume] [-AppleShipAppStoreTarget <String[]>] [-AppleShipSyncScreenshots] [-AppleShipTestFlightTarget <String[]>] [-AppleSourceCommit <String>] [-AppleSummary] [-AppleVersion <String>] [-AppleWaitForProcessing] [-ChecksumsPath <String>] [-Configuration <String>] [-ConfirmAppleAction] [-ExitCode] [-Flavors <SingleContained|SingleFx|Portable|Fx>] [-Frameworks <String[]>] [-InstallerProperty <String[]>] [-KeepSymbols] [-ManifestJsonPath <String>] [-ModuleCertificateThumbprint <String>] [-ModuleDiagnosticsBaselinePath <String>] [-ModuleFailOnDiagnosticsSeverity <Warning|Error>] [-ModuleFailOnNewDiagnostics <Boolean>] [-ModuleFramework <auto|net10.0|net8.0>] [-ModuleGenerateDiagnosticsBaseline <Boolean>] [-ModuleNoDotnetBuild] [-ModuleNoSign] [-ModuleOnly] [-ModulePreReleaseTag <String>] [-ModuleRunMode <Manifest|Documentation|Build|Publish>] [-ModuleSignIncludeBinaries <Boolean>] [-ModuleSignIncludeExe <Boolean>] [-ModuleSignIncludeInternals <Boolean>] [-ModuleSignModule] [-ModuleSkipInstall] [-ModuleTimeoutSeconds <Int32>] [-ModuleUpdateDiagnosticsBaseline <Boolean>] [-ModuleVersion <String>] [-NoAppleResume] [-NoAppleWaitForProcessing] [-NoInteractive] [-OutputRoot <String>] [-PackageSignStore <CurrentUser|LocalMachine>] [-PackageSignThumbprint <String>] [-PackageSignTimestampUrl <String>] [-PackagesOnly] [-Plan] -Project <ConfigurationProject> [-PublishNuget] [-PublishProjectGitHub] [-PublishToolGitHub] [-ReleaseVersion <String>] [-Runtimes <String[]>] [-Sign] [-SignCsp <String>] [-SignDescription <String>] [-SignKeyContainer <String>] [-SignOnFailure <Warn|Fail|Skip>] [-SignOnMissingTool <Warn|Fail|Skip>] [-SignProfile <String>] [-SignSubjectName <String>] [-SignThumbprint <String>] [-SignTimeoutSeconds <Int32>] [-SignTimestampUrl <String>] [-SignToolPath <String>] [-SignUrl <String>] [-SkipBuild] [-SkipReleaseChecksums] [-SkipRestore] [-SkipToolOutput <Tool|Portable|Installer|Store>] [-SkipWingetSubmit] [-SkipWorkspaceValidation] [-StageRoot <String>] [-Styles <DotNetPublishStyle[]>] [-SubmitWinget] [-Target <String[]>] [-ToolOutput <Tool|Portable|Installer|Store>] [-ToolsOnly] [-Validate] [-WingetAllowInteractiveAuthentication] [-WingetOpenBrowser] [-WingetPullRequestTitle <String>] [-WingetReplace] [-WingetReplaceVersion <String>] [-WingetSubmitMode <Manifest|Update>] [-WingetTimeoutSeconds <Int32>] [-WingetTokenEnvName <String>] [-WingetTokenFilePath <String>] [-WingetToolPath <String>] [-WorkspaceConfigPath <String>] [-WorkspaceDisableFeature <String[]>] [-WorkspaceEnableFeature <String[]>] [-WorkspaceProfile <String>] [-WorkspaceTestimoXRoot <String>] [<CommonParameters>]#Parameter set:
ProjectDescription
This cmdlet is the PowerShell entry point for the same unified release engine used by powerforge release. It can coordinate repository package publishing and downloadable tool/app artefacts from one configuration file.
Examples
Plan the configured release without running build/publish steps
Invoke-PowerForgeRelease -ConfigPath '.\Build\release.json' -PlanRun tool releases only and publish tool assets to GitHub
Invoke-PowerForgeRelease -ConfigPath '.\Build\release.json' -ToolsOnly -PublishToolGitHub -ExitCodeParameters
- -AdoptExistingAppleBuild SwitchParameter
- Explicitly adopts a verified remote Apple build or accepted notarization operation. Local receipts provide continuity evidence but never authorize cross-process recovery by themselves; this switch requires ConfirmAppleAction and is intended only for deliberate recovery.
- -AllowManifestOutsideProjectRoot SwitchParameter
- Allows DotNetPublish-backed manifest/report paths to resolve outside the configured project root.
- -AllowOutputOutsideProjectRoot SwitchParameter
- Allows DotNetPublish-backed outputs to resolve outside the configured project root.
- -AppleAction PowerForgeAppleReleaseAction
- Selects one explicit Apple release operation. Configured preserves legacy JSON action flags.
- Possible values:
Configured,Status,Doctor,Version,Archive,Upload,UploadExisting,Prepare,Screenshots,TestFlight,Advance,SubmitTestFlightReview,SubmitAppReview,Release,Cleanup,Rehearse,Ship - -AppleExpectedPlanSha256 String
- Requires the persisted Apple plan receipt to match this exact SHA-256.
- -ApplePollIntervalSeconds Int32
- App Store Connect processing poll interval in seconds.
- -AppleProcessingTimeoutSeconds Int32
- Maximum App Store Connect processing wait in seconds.
- -AppleResume SwitchParameter
- Enables recovery discovery; deliberate cross-process reuse also requires AdoptExistingAppleBuild and ConfirmAppleAction.
- -AppleShipAppStoreTarget String[]
- Apple target names or schemes that should be submitted to App Store Review by Ship.
- -AppleShipSyncScreenshots SwitchParameter
- Publishes reviewed local screenshot bytes during Ship instead of reusing complete remote screenshots.
- -AppleShipTestFlightTarget String[]
- Apple target names or schemes that should receive the Ship build through internal TestFlight.
- -AppleSourceCommit String
- Binds Apple release evidence to a full 40-character SHA-1 or 64-character SHA-256 source commit.
- -AppleSummary SwitchParameter
- Requests compact Apple receipt-oriented output from compatible hosts.
- -AppleVersion String
- Overrides the Apple marketing version selected for this operation.
- -AppleWaitForProcessing SwitchParameter
- Waits for App Store Connect build processing on this run.
- -ChecksumsPath String
- Optional release checksums output path override.
- -ConfigPath String
- Path to the unified release configuration file. When omitted, the cmdlet searches current and parent directories for standard release config file names.
- -Configuration String
- Optional configuration override.
- -ConfirmAppleAction SwitchParameter
- Explicitly confirms a risky Apple screenshot replacement, review submission, or public release action.
- -ExitCode SwitchParameter
- Sets host exit code: 0 on success, 1 on failure.
- -Flavors String[]
- Optional legacy tool flavor filter.
- Possible values:
SingleContained,SingleFx,Portable,Fx - -Frameworks String[]
- Optional framework filter.
- -InstallerProperty String[]
- Optional installer MSBuild property overrides in Name=Value form.
- -KeepSymbols SwitchParameter
- Keeps symbol files for tool/app artefacts.
- -ManifestJsonPath String
- Optional release manifest output path override.
- -ModuleCertificateThumbprint String
- Optional signing certificate thumbprint for the native module-release lane.
- -ModuleDiagnosticsBaselinePath String
- Optional diagnostics baseline path for the native module-release lane.
- -ModuleFailOnDiagnosticsSeverity String
- Optional diagnostics severity threshold for the native module-release lane.
- Possible values:
Warning,Error - -ModuleFailOnNewDiagnostics Boolean
- Controls failure on new diagnostics in the native module-release lane.
- -ModuleFramework String
- Target framework used by the native module-release lane.
- Possible values:
auto,net10.0,net8.0 - -ModuleGenerateDiagnosticsBaseline Boolean
- Controls diagnostics baseline generation in the native module-release lane.
- -ModuleNoDotnetBuild SwitchParameter
- Skips the dotnet build step inside the native module-release lane.
- -ModuleNoSign SwitchParameter
- Disables signing for the native module-release lane.
- -ModuleOnly SwitchParameter
- Executes only the module portion of the release.
- -ModulePreReleaseTag String
- Optional prerelease tag override for the native module-release lane.
- -ModuleRunMode ConfigurationGateMode
- Module pipeline gate used by the native module-release lane.
- Possible values:
Manifest,Documentation,Build,Publish - -ModuleSignIncludeBinaries Boolean
- Controls whether the native module-release lane signs binaries.
- -ModuleSignIncludeExe Boolean
- Controls whether the native module-release lane signs executables.
- -ModuleSignIncludeInternals Boolean
- Controls whether the native module-release lane signs internal files.
- -ModuleSignModule SwitchParameter
- Enables signing for the native module-release lane.
- -ModuleSkipInstall SwitchParameter
- Skips installation after the native module-release lane completes.
- -ModuleTimeoutSeconds Int32
- Maximum runtime in seconds for the native module-release lane.
- -ModuleUpdateDiagnosticsBaseline Boolean
- Controls diagnostics baseline updates in the native module-release lane.
- -ModuleVersion String
- Optional module version override for the native module-release lane.
- -NoAppleResume SwitchParameter
- Disables exact remote-build reuse on this run.
- -NoAppleWaitForProcessing SwitchParameter
- Returns after upload instead of waiting for build processing.
- -NoInteractive SwitchParameter
- Disables the interactive Spectre renderer while preserving structured pipeline output.
- -OutputRoot String
- Optional output root override for tool/app assets.
- -PackageSignStore String
- Optional package-signing certificate store override.
- Possible values:
CurrentUser,LocalMachine - -PackageSignThumbprint String
- Optional package-signing thumbprint override.
- -PackageSignTimestampUrl String
- Optional package-signing timestamp URL override.
- -PackagesOnly SwitchParameter
- Executes only the package portion of the release.
- -Plan SwitchParameter
- Builds the release plan without executing steps.
- -PublishNuget SwitchParameter
- Enables NuGet publishing for this run.
- -PublishProjectGitHub SwitchParameter
- Enables project/package GitHub release publishing for this run.
- -PublishToolGitHub SwitchParameter
- Enables tool/app GitHub release publishing for this run.
- -ReleaseVersion String
- Exact x.y.z version override for an explicitly tool-only release.
- -Runtimes String[]
- Optional runtime filter.
- -Sign SwitchParameter
- Enables signing for tool/app outputs when supported by the release config.
- -SignCsp String
- Optional signing CSP override.
- -SignDescription String
- Optional signing description override.
- -SignKeyContainer String
- Optional signing key container override.
- -SignOnFailure DotNetPublishPolicyMode
- Optional policy when signing fails.
- Possible values:
Warn,Fail,Skip - -SignOnMissingTool DotNetPublishPolicyMode
- Optional policy when the configured signing tool is missing.
- Possible values:
Warn,Fail,Skip - -SignProfile String
- Optional signing profile override.
- -SignSubjectName String
- Optional signing certificate subject name override.
- -SignThumbprint String
- Optional signing thumbprint override.
- -SignTimeoutSeconds Int32
- Maximum signing process duration in seconds.
- -SignTimestampUrl String
- Optional signing timestamp URL override.
- -SignToolPath String
- Optional signing tool path override.
- -SignUrl String
- Optional signing URL override.
- -SkipBuild SwitchParameter
- Disables build operations for the tool/app publish flow.
- -SkipReleaseChecksums SwitchParameter
- Skips top-level release checksums generation.
- -SkipRestore SwitchParameter
- Disables restore operations for the tool/app publish flow.
- -SkipToolOutput String[]
- Optional tool/app output exclusion for DotNetPublish-backed release flows.
- Possible values:
Tool,Portable,Installer,Store - -SkipWingetSubmit SwitchParameter
- Disables Winget submission even when enabled by release configuration.
- -SkipWorkspaceValidation SwitchParameter
- Skips workspace validation defined by the release config.
- -StageRoot String
- Optional staged release root override.
- -Styles DotNetPublishStyle[]
- Optional publish style filter.
- Possible values:
Portable,PortableCompat,PortableSize,SelfContained,FrameworkDependent,AotSpeed,AotSize - -SubmitWinget SwitchParameter
- Submits generated Winget manifests with wingetcreate after release assets are available.
- -Target String[]
- Optional target-name filter.
- -ToolOutput String[]
- Optional tool/app output selection for DotNetPublish-backed release flows.
- Possible values:
Tool,Portable,Installer,Store - -ToolsOnly SwitchParameter
- Executes only the tool/app portion of the release.
- -Validate SwitchParameter
- Validates configuration through plan-only execution.
- -WingetAllowInteractiveAuthentication SwitchParameter
- Allows wingetcreate to prompt for GitHub authentication when no token is resolved.
- -WingetOpenBrowser SwitchParameter
- Allows wingetcreate to open the submitted pull request in a browser.
- -WingetPullRequestTitle String
- Pull request title template passed to wingetcreate.
- -WingetReplace SwitchParameter
- Enables wingetcreate replacement mode.
- -WingetReplaceVersion String
- Optional version passed with wingetcreate replacement mode.
- -WingetSubmitMode String
- Winget submission mode used by wingetcreate.
- Possible values:
Manifest,Update - -WingetTimeoutSeconds Int32
- Timeout in seconds for each wingetcreate invocation.
- -WingetTokenEnvName String
- Environment variable containing the GitHub token for wingetcreate.
- -WingetTokenFilePath String
- File containing the GitHub token for wingetcreate.
- -WingetToolPath String
- Optional wingetcreate executable path.
- -WorkspaceConfigPath String
- Optional workspace validation config override.
- -WorkspaceDisableFeature String[]
- Optional workspace feature disable list override.
- -WorkspaceEnableFeature String[]
- Optional workspace feature enable list override.
- -WorkspaceProfile String
- Optional workspace validation profile override.
- -WorkspaceTestimoXRoot String
- Optional TestimoX workspace root passed to shared workspace validation.
- -Project ConfigurationProject
- PowerShell-authored project/release object that is translated into the unified release engine.
Common Parameters
This command supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable.
For more information, see about_CommonParameters.