deploy-module.ps1

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


[xml]$XML = Get-Content -Path ".\crm-ci.nuspec"
$v = $XML.package.metadata.version.Split(".")
[int]$major = $v[0]
[int]$minor = $v[1]
[int]$patch = $v[2]
switch ($ReleaseType) {
  "Major" {
    $major++; $minor = 0; $patch = 0;
  }
  "Minor" {
    $minor++; $patch = 0;
  }
  "BugFix" {
    $patch++;
  }
  Default {}
}
$vstring = $major, $minor, $patch -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 {
  Uninstall-Module crm-ci
  Install-Module crm-ci
}