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 } |