build/3.deploy.ps1
param( $repotype = "local", $reponame, $sourcelocation, $publishlocation, $modulepath = "$($env:ProgramFiles)\WindowsPowershell\Modules", $apikey ) $modulename = $($env:CI_PROJECT_NAME).tolower() import-module powershellget Remove-Item "$modulepath\$modulename" -Recurse -Force -erroraction silentlycontinue Copy-Item ".\$modulename" -Recurse -Destination $modulepath $commitmsg = (Get-BuildEnvironment).CommitMessage if ($commitmsg -like "*nobuild*"){ $skip = $true } if ($($env:repotype) -eq "psgallery" -and $skip -ne $true) { Publish-Module -Name $modulename -NuGetApiKey $($env:apikey) -Verbose } Elseif ($env:repotype -eq "local" -and $skip -ne $true) { Register-PSRepository -name $($env:reponame) -sourcelocation $($env:sourcelocation) -publishlocation $($env:publishlocation) -erroraction silentlycontinue try { Publish-Module -Name $modulename -Repository $env:reponame -Verbose -Force } Catch { throw "An error occurred publishing the module $modulename" } } Elseif ($env:repotype -eq "nuget" -and $skip -ne $true) { Register-PSRepository -name $($env:reponame) -sourcelocation $($env:sourcelocation) -publishlocation $($env:publishlocation) -erroraction silentlycontinue try { Publish-Module -Name $modulename -Repository $env:reponame -NuGetApiKey $env:apikey -Verbose -Force } Catch { throw "An error occurred publishing the module $modulename" } } |