| external help file | PSPublishModule-help.xml |
|---|---|
| Module Name | PSPublishModule |
| online version | https://github.com/EvotecIT/PSPublishModule |
| schema | 2.0.0 |
Creates/updates a module structure and triggers the build pipeline (legacy DSL compatible).
Invoke-ModuleBuild [[-Settings] <scriptblock>] -ModuleName <string> [-Path <string>] [-RunMode <ConfigurationGateMode>] [-FunctionsToExportFolder <string>] [-AliasesToExportFolder <string>] [-ExcludeFromPackage <string[]>] [-ExcludeDirectories <string[]>] [-ExcludeFiles <string[]>] [-IncludeRoot <string[]>] [-IncludePS1 <string[]>] [-IncludeAll <string[]>] [-IncludeCustomCode <scriptblock>] [-IncludeToArray <IDictionary>] [-LibrariesCore <string>] [-LibrariesDefault <string>] [-LibrariesStandard <string>] [-Legacy] [-NoInteractive] [-Quiet] [-PassThru] [-StagingPath <string>] [-CsprojPath <string>] [-DotNetConfiguration <string>] [-DotNetFramework <string[]>] [-SkipInstall] [-InstallStrategy <InstallationStrategy>] [-KeepVersions <int>] [-InstallRoots <string[]>] [-LegacyFlatHandling <LegacyFlatModuleHandling>] [-PreserveInstallVersions <string[]>] [-KeepStaging] [-JsonOnly] [-JsonPath <string>] [-DiagnosticsBaselinePath <string>] [-GenerateDiagnosticsBaseline] [-UpdateDiagnosticsBaseline] [-FailOnNewDiagnostics] [-FailOnDiagnosticsSeverity <BuildDiagnosticSeverity>] [-DiagnosticsBinaryConflictSearchRoot <string[]>] [-ExitCode] [<CommonParameters>]Invoke-ModuleBuild -ConfigPath <string> [-RunMode <ConfigurationGateMode>] [-ModuleVersion <string>] [-PreReleaseTag <string>] [-BuildConfiguration <string>] [-BuildFramework <string>] [-NoDotnetBuild] [-NoSign] [-SignModule] [-IncludeProjectPackages <bool>] [-IncludeModulePublishing <bool>] [-PowerForgeUnifiedGitHubRelease] [-CertificateThumbprint <string>] [-SignIncludeBinaries <Boolean>] [-SignIncludeInternals <Boolean>] [-SignIncludeExe <Boolean>] [-ExcludeDirectories <string[]>] [-ExcludeFiles <string[]>] [-Legacy] [-NoInteractive] [-Quiet] [-PassThru] [-StagingPath <string>] [-SkipInstall] [-JsonOnly] [-JsonPath <string>] [-DiagnosticsBaselinePath <string>] [-GenerateDiagnosticsBaseline] [-UpdateDiagnosticsBaseline] [-FailOnNewDiagnostics] [-FailOnDiagnosticsSeverity <BuildDiagnosticSeverity>] [-DiagnosticsBinaryConflictSearchRoot <string[]>] [-ExitCode] [<CommonParameters>]Invoke-ModuleBuild -Configuration <IDictionary> [-RunMode <ConfigurationGateMode>] [-ExcludeDirectories <string[]>] [-ExcludeFiles <string[]>] [-Legacy] [-NoInteractive] [-Quiet] [-PassThru] [-JsonOnly] [-JsonPath <string>] [-DiagnosticsBaselinePath <string>] [-GenerateDiagnosticsBaseline] [-UpdateDiagnosticsBaseline] [-FailOnNewDiagnostics] [-FailOnDiagnosticsSeverity <BuildDiagnosticSeverity>] [-DiagnosticsBinaryConflictSearchRoot <string[]>] [-ExitCode] [<CommonParameters>]This is the primary entry point for building a PowerShell module using PSPublishModule. Configuration is provided via a DSL using New-Configuration* cmdlets (typically inside the -Settings scriptblock) and then executed by the PowerForge pipeline runner.
To generate a reusable powerforge.json configuration file (for the PowerForge CLI) without running any build steps, use -JsonOnly with -JsonPath.
When running in an interactive terminal, pipeline execution uses a Spectre.Console progress UI. Redirect output or use -Verbose to force plain, line-by-line output (useful for CI logs).
Dependency behavior is composed from the configuration segments you emit. Typically this means: New-ConfigurationModule declares dependencies, New-ConfigurationBuild decides whether the build host should install missing ones, and New-ConfigurationArtefact decides whether required modules should be bundled into the output artefact.
Invoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' -Settings {
New-ConfigurationDocumentation -Enable -Path 'Docs' -PathReadme 'Docs\Readme.md'
}Invoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' -JsonOnly -JsonPath 'C:\Git\MyModule\powerforge.json'Invoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' -ExitCode -Settings {
New-ConfigurationFileConsistency -Enable -FailOnInconsistency -AutoFix -CreateBackups -ExportReport
New-ConfigurationCompatibility -Enable -RequireCrossCompatibility -FailOnIncompatibility -ExportReport
}Invoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' `
-CsprojPath 'C:\Git\MyModule\src\MyModule\MyModule.csproj' -DotNetFramework net8.0 -DotNetConfiguration Release `
-Settings { New-ConfigurationBuild -Enable -MergeModuleOnBuild }Invoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' `
-DiagnosticsBaselinePath 'C:\Git\MyModule\.powerforge\module-diagnostics-baseline.json' `
-FailOnNewDiagnostics -FailOnDiagnosticsSeverity WarningInvoke-ModuleBuild -ModuleName 'MyModule' -Path 'C:\Git' -Settings {
New-ConfigurationModule -Type RequiredModule -Name 'Pester' -Version 'Latest' -Guid 'Auto'
New-ConfigurationBuild -Enable -InstallMissingModules -ResolveMissingModulesOnline
New-ConfigurationArtefact -Type Packed -Enable -AddRequiredModules -RequiredModulesSource Auto
}Folder name containing aliases to export. Default: Public.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides the .NET build configuration declared by a JSON configuration.
Type: String
Parameter Sets: Config
Aliases: None
Possible values: Release, Debug
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides the .NET framework declared by a JSON configuration. Auto preserves the configured framework matrix.
Type: String
Parameter Sets: Config
Aliases: None
Possible values: auto, net10.0, net8.0, net472
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides the signing certificate thumbprint declared by a JSON configuration.
Type: String
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalsePath to a module pipeline JSON config generated by Invoke-ModuleBuild -JsonOnly.
Type: String
Parameter Sets: Config
Aliases: None
Possible values:
Required: True
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseLegacy configuration dictionary for backwards compatibility.
Type: IDictionary
Parameter Sets: Configuration
Aliases: None
Possible values:
Required: True
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOptional path to a .NET project (.csproj) to publish into the module.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOptional path to a diagnostics baseline file used to compare current issues with known issues.
Type: String
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOptional module roots to scan for deterministic binary conflict diagnostics. When provided, conflict findings can participate in diagnostics baselines and policy.
Type: String[]
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseBuild configuration for publishing the .NET project (Release or Debug).
Type: String
Parameter Sets: Modern
Aliases: None
Possible values: Release, Debug
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseTarget frameworks to publish (e.g., net472, net8.0).
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseDirectory names excluded from staging copy (matched by directory name, not by path).
Type: String[]
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFile names excluded from staging copy (matched by file name, not by path).
Type: String[]
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseExclude patterns for artefact packaging.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseWhen specified, requests the host to exit with code 0 on success and 1 on failure.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFails the build when diagnostics at or above the specified severity are present.
Type: BuildDiagnosticSeverity
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values: Warning, Error
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFails the build when diagnostics appear that are not present in the loaded baseline.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFolder name containing functions to export. Default: Public.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseWrites a diagnostics baseline file from the current run.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFolders from which to include all files in artefacts.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOptional script block executed during staging that can add custom files/folders to the build.
Type: ScriptBlock
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseControls whether module repository and GitHub publish segments declared by a JSON configuration are included. Parent release hosts disable them when publishing signed checkpointed module artifacts directly.
Type: Boolean
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseControls whether project/package segments declared by a JSON configuration are included. Unified release orchestration disables them when the outer package lane owns publication.
Type: Boolean
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseFolders from which to include .ps1 files in artefacts.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseInclude patterns for root files in artefacts.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseAdvanced hashtable form for includes (maps IncludeRoot/IncludePS1/IncludeAll etc).
Type: IDictionary
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseDestination module roots for install. When omitted, defaults are used.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseInstallation strategy used when installing the module.
Type: InstallationStrategy
Parameter Sets: Modern
Aliases: None
Possible values: Exact, AutoRevision
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseGenerates a PowerForge pipeline JSON file and exits without running the build pipeline. Intended for migrating legacy DSL scripts to powerforge CLI configuration.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOutput path for the generated pipeline JSON file (used with JsonOnly). Defaults to powerforge.json in the project root.
Type: String
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseKeep staging directory after build/install.
Type: SwitchParameter
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseNumber of versions to keep per module root when installing.
Type: Int32
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseCompatibility switch. Historically forced the PowerShell-script build pipeline; the build now always runs through the C# PowerForge pipeline.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseHow to handle legacy flat installs found under module roots.
Type: LegacyFlatModuleHandling
Parameter Sets: Modern
Aliases: None
Possible values: Warn, Convert, Delete, Ignore
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseAlternate relative path for .NET Core-targeted libraries folder. Default: Lib/Core.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseAlternate relative path for .NET Framework-targeted libraries folder. Default: Lib/Default.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseAlternate relative path for .NET Standard-targeted libraries folder. Default: Lib/Standard.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseName of the module being built.
Type: String
Parameter Sets: Modern
Aliases: ProjectName
Possible values:
Required: True
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides the module version declared by a JSON configuration.
Type: String
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseSkips the configured .NET project build and reuses the existing module binary payload.
Type: SwitchParameter
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseDisables the interactive progress UI and emits plain log output.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseDisables module signing declared by a JSON configuration.
Type: SwitchParameter
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseWrites the completed module pipeline result to the PowerShell success stream.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalsePath to the parent folder where the project exists or should be created. The module project resolves to Path\ModuleName. When omitted, uses the parent of the calling script directory.
Type: String
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseIndicates that a parent unified release owns GitHub publication and suppresses GitHub publish segments declared by the JSON module configuration.
Type: SwitchParameter
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides the prerelease tag declared by a JSON configuration.
Type: String
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseVersion folders to preserve when pruning installed versions.
Type: String[]
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseSuppresses host rendering and log output. Intended for callers that request structured results.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseHigh-level module build lane. Manifest refreshes PSD1 metadata only, Documentation regenerates command Markdown and external help without validation/tests/signing/package/install phases, Build runs local build/package lanes, and Publish enables configured publish destinations.
Type: ConfigurationGateMode
Parameter Sets: Modern, Config, Configuration
Aliases: ConfigurationGateMode
Possible values: Manifest, Build, Publish, Documentation
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseProvides settings for the module in the form of a script block (DSL).
Type: ScriptBlock
Parameter Sets: Modern
Aliases: None
Possible values:
Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides whether binary files are signed for a JSON configuration.
Type: Boolean
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides whether executable files are signed for a JSON configuration.
Type: Boolean
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseOverrides whether internal files are signed for a JSON configuration.
Type: Boolean
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseEnables module signing declared by a JSON configuration.
Type: SwitchParameter
Parameter Sets: Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseSkips installing the module after build.
Type: SwitchParameter
Parameter Sets: Modern, Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseStaging directory for the PowerForge pipeline. When omitted, a temporary folder is generated.
Type: String
Parameter Sets: Modern, Config
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseUpdates a diagnostics baseline file from the current run.
Type: SwitchParameter
Parameter Sets: Modern, Config, Configuration
Aliases: None
Possible values:
Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: FalseThis cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
None
PowerForge.ModulePipelineResult
- None