deploy-module.ps1

Param
(
    [parameter(Mandatory=$true)]
    [ValidateSet("Major", "Minor", "BugFix")]
    [String]
    $ReleaseType
)
$ErrorActionPreference = "Stop"

switch ($ReleaseType) {
  "Major" { $position = 0; break}
  "Minor" { $position = 1; break}
  "BugFix" { $position = 2; break}
  Default {}
}

[xml]$XML = Get-Content -Path ".\crm-ci.nuspec"
$v = $XML.package.metadata.version.Split(".")
$v[$position] = [int]$v[$position] + 1
$vstring = $v -join "."
$XML.package.metadata.version = $vstring
$XML.Save(".\crm-ci.nuspec")

Update-ModuleManifest -Path ".\crm-ci.psd1" -ModuleVersion $vstring

$cred = Get-Credential -UserName $env:USERNAME -Message "Credentials for EMSCRIPT"

$content = Get-Content .env
$content | ForEach-Object {
    $str = $_.split("=")
    New-Variable -Name $str[0] -Value $str[1] -Force
}

if (Test-Path $localmodule) {
  Remove-Item $localmodule -Force
}
Copy-Item $PSScriptRoot 'C:\Program Files\WindowsPowerShell\Modules' -Recurse 
& nuget pack -basepath $localmodule -outputdirectory $localmodule | Write-Host

Publish-Module -Name crm-ci -Repository PSGallery -NuGetApiKey $nugetapikey 

Invoke-Command -ComputerName $computername -Credential $cred -ScriptBlock {C:\repos\em-scripts\update-modules.ps1}