tasks/Create-CompositeResource.build.ps1
param ( # Project path [Parameter()] [System.String] $ProjectPath = (property ProjectPath $BuildRoot), [Parameter()] # Base directory of all output (default to 'output') [System.String] $OutputDirectory = (property OutputDirectory (Join-Path $BuildRoot 'output')), [Parameter()] [System.String] $BuiltModuleSubdirectory = (property BuiltModuleSubdirectory ''), [Parameter()] [System.Management.Automation.SwitchParameter] $VersionedOutputDirectory = (property VersionedOutputDirectory $true), [Parameter()] [System.String] $ProjectName = (property ProjectName ''), [Parameter()] [System.String] $PesterOutputFolder = (property PesterOutputFolder 'testResults'), [Parameter()] [System.String] $PesterOutputFormat = (property PesterOutputFormat ''), [Parameter()] [System.Object[]] $PesterScript = (property PesterScript ''), [Parameter()] [System.String[]] $PesterTag = (property PesterTag @()), [Parameter()] [System.String[]] $PesterExcludeTag = (property PesterExcludeTag @()), [Parameter()] [System.String] $CodeCoverageThreshold = (property CodeCoverageThreshold ''), # Build Configuration object [Parameter()] [System.Collections.Hashtable] $BuildInfo = (property BuildInfo @{ }) ) # Synopsis: Merging several code coverage files together. task Generate_Composite_Resource_Module { # Get the vales for task variables, see https://github.com/gaelcolas/Sampler#task-variables. . Set-SamplerTaskVariable "`tOutput Path = '$OutputDirectory'" "" Write-Build White 'Generating Composite Resource Module' if ($null -eq ((Get-Module 'Microsoft365DSC' -ListAvailable) | Where-Object { $_.Version -eq $env:ModuleVersion })) { Install-Module -Name 'Microsoft365DSC' -RequiredVersion $env:ModuleVersion -Scope AllUsers -Confirm:$false -Force } $result = New-CompositeResourceModule -OutputPath $OutputDirectory -Version $env:ModuleVersion if ($result) { Write-Build Green "Module generation completed." } else { throw "Error occurred during module generation! Please check the log output." } } |