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.