Templates/Build.InvokeBuild/build.settings.ps1
############################################################################### # Customize these properties and tasks for your module. ############################################################################### # ----------------------- Basic properties -------------------------------- # The name of your module should match the basename of the PSD1 file. $ModuleName = "<%= $Name %>" # The root directories for the module's docs, src and test. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $DocsRootDir = "$PSScriptRoot/docs" $SrcRootDir = "$PSScriptRoot/$ModuleName" [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $TestRootDir = "$PSScriptRoot/Tests" # The $OutDir must match the ModuleName in order to support publishing the module. $ReleaseDir = "$PSScriptRoot/Release" [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $OutDir = "$ReleaseDir/$ModuleName" # Default Locale used for documentation generatioon, defaults to en-US. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $DefaultLocale = $null # Items in the $Exclude array will not be copied to the $OutDir e.g. $Exclude = @('.gitattributes') # Typically you wouldn't put any file under the src dir unless the file was going to ship with # the module. However, if there are such files, add their $SrcRootDir relative paths to the exclude list. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $Exclude = @() # -------------------- Script analysis properties ------------------------------ # To control the failure of the build with specific script analyzer rule severities, # the CodeAnalysisStop variable can be used. The supported values for this variable are # 'Warning', 'Error', 'All', 'None' or 'ReportOnly'. Invalid input will stop on all rules. # 'None' will skip over the code analysis step all together. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $ScriptAnalysisAction = 'None' # Path to PowerShell Script Analyzer settings file. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $ScriptAnalysisSettingsPath = "$PSScriptRoot\ScriptAnalyzerSettings.psd1" # The script analysis task step will run, unless your host is in the array defined below. # This allows you to control whether code analysis is executed, for hosts where script # analysis is included in the product. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $SkipScriptAnalysisHost = @( 'Visual Studio Code Host', 'My Custom Host with scriptanalyzer support' ) # ------------------- Testing properties ---------------------------------- # To control the build with code coverage, the $CodeCoverageStop variable can be used. # The supported values for this variable are $true, $false and $null. $true enables # code coverage, with the $CodeCoveragePercentage variable to reach (info below). # $false disables code coverage entirely, while $null enables code coverage, but will # only report on coverage status and not stop the build. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $CodeCoverageStop = $false # You can specify a minimum code coverage percentage that must be reached in order # for the test task to pass. The code coverage test is not performed if # $CodeCoveragePercentage is 0. If $CodeCoveragePercentage is non-zero, but is not # reached, the build script will fail. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $CodeCoveragePercentage = 60 # CodeCoverageFiles specifies the files to perform code coverage analysis on. This property # acts as a direct input to the Pester -CodeCoverage parameter, so will support constructions # like the ones found here: https://github.com/pester/Pester/wiki/Code-Coverage. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $CodeCoverageSelection = "$SrcRootDir\*.ps1", "$SrcRootDir\*.psm1" # ------------------- Script signing properties --------------------------- # Set to $true if you want to sign your scripts. You will need to have a code-signing certificate. # You can specify the certificate's subject name below. If not specified, you will be prompted to # provide either a subject name or path to a PFX file. After this one time prompt, the value will # saved for future use and you will no longer be prompted. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $SignScripts = $false # Specify the Subject Name of the certificate used to sign your scripts. Leave it as $null and the # first time you build, you will be prompted to enter your code-signing certificate's Subject Name. # This variable is used only if $SignScripts is set to $true. # # This does require the code-signing certificate to be installed to your certificate store. If you # have a code-signing certificate in a PFX file, install the certificate to your certificate store # with the command below. You may be prompted for the certificate's password. # # Import-PfxCertificate -FilePath .\myCodeSigingCert.pfx -CertStoreLocation Cert:\CurrentUser\My # [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $CertSubjectName = $null # Certificate store path. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $CertPath = "Cert:\" # -------------------- Publishing properties ------------------------------ # Your NuGet API key for the PSGallery. Leave it as $null and the first time you publish, # you will be prompted to enter your API key. The build will store the key encrypted in the # settings file, so that on subsequent publishes you will no longer be prompted for the API key. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $NuGetApiKey = $null # Name of the repository you wish to publish to. If $null is specified the default repo (PowerShellGallery) is used. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $PublishRepository = $null # Path to the release notes file. Set to $null if the release notes reside in the manifest file. # The contents of this file are used during publishing for the ReleaseNotes parameter. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $ReleaseNotesPath = "$PSScriptRoot\ReleaseNotes.md" # ----------------------- Misc properties --------------------------------- # In addition, PFX certificates are supported in an interactive scenario only, # as a way to import a certificate into the user personal store for later use. # This can be provided using the CertPfxPath parameter. PFX passwords will not be stored. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $SettingsPath = "$env:LOCALAPPDATA\Plaster\NewModuleTemplate\SecuredBuildSettings.clixml" # The local installation directory for the install task. Defaults to your user PSModulePath. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $InstallPath = $null # Specifies an output file path to send to Invoke-Pester's -OutputFile parameter. # This is typically used to write out test results so that they can be sent to a CI # system like AppVeyor. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $TestOutputFile = $null # Specifies the test output format to use when the TestOutputFile property is given # a path. This parameter is passed through to Invoke-Pester's -OutputFormat parameter. [System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseDeclaredVarsMoreThanAssigments', '')] $TestOutputFormat = "NUnitXml" <############################################################################## Add tasks for performing operations before and/or after Plaster tasks. Plaster tasks: Clean, Build, Sign, BuildHelp, Install, Test, Publish. Examples of added tasks: # Synopsis: The task invoked after Build. Task PostBuild -After Build { ... } # Synopsis: The task invoked before Install. Task PreInstall -Before Install { ... } ##############################################################################> |