publish.ps1

[CmdletBinding(SupportsShouldProcess, ConfirmImpact='High')]
param(
)
. .\helpers
Write-Host "Getting nuget api key"
$Key=Get-Password -Name "Powershell Gallery OptWin" -Field "credential"
Import-PowerShellDataFile -Path .\OptWin.psd1 | Set-Variable ModuleData
$ModuleData| Select-Object -ExpandProperty ModuleVersion | Set-Variable OldVersion
$NewVersion=Step-Version -Version $OldVersion -By Patch
Write-Host "Validating module manifest"
$ErrorActionPreference="Stop"
Test-ModuleManifest -Path .\OptWin.psd1 | out-null
$ErrorActionPreference="Continue"
Update-ModuleManifest -Path .\OptWin.psd1 -ModuleVersion $NewVersion
Write-Host "Version $OldVersion -> $NewVersion"
Write-Host "Let's publish!!"
if($PSCmdlet.ShouldProcess("PSGallery","Publish-Module")){
    Publish-Module -Path . -NuGetApiKey $Key -Repository PSGallery
    Install-Module -Name OptWin -Force
    Import-Module OptWin
    if(Find-Module OptWin | Select-Object -ExpandProperty Version -ne $NewVersion){
        Write-Error "Something went wrong"
    }else{
        Write-Host -ForegroundColor Green "Module published successfully"
    }
}
Remove-Variable "Key"