From dcb69f01c9171f6f66fe8f726689c54369d84ff1 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Fri, 7 Mar 2025 21:28:42 +0100 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=A9=B9=20[Refactor]:=20Simplify=20env?= =?UTF-8?q?ironment=20variable=20checks=20in=20`main.ps1`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/main.ps1 | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index d9d5f63..07bf627 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -9,7 +9,7 @@ param() LogGroup 'Loading libraries' { - 'Utilities', 'powershell-yaml', 'PSSemVer' | ForEach-Object { + 'powershell-yaml', 'PSSemVer' | ForEach-Object { $name = $_ $count = 5 $delay = 10 @@ -28,10 +28,6 @@ LogGroup 'Loading libraries' { } } -LogGroup 'Environment variables' { - Get-ChildItem -Path Env: | Select-Object Name, Value | Sort-Object Name | Format-Table -AutoSize | Out-String -} - LogGroup 'Set configuration' { if (-not (Test-Path -Path $env:PSMODULE_AUTO_RELEASE_INPUT_ConfigurationFile -PathType Leaf)) { Write-Output "Configuration file not found at [$env:PSMODULE_AUTO_RELEASE_INPUT_ConfigurationFile]" @@ -40,19 +36,19 @@ LogGroup 'Set configuration' { $configuration = ConvertFrom-Yaml -Yaml (Get-Content $env:PSMODULE_AUTO_RELEASE_INPUT_ConfigurationFile -Raw) } - $autoCleanup = ($configuration.AutoCleanup | IsNotNullOrEmpty) ? $configuration.AutoCleanup -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_AutoCleanup -eq 'true' - $autoPatching = ($configuration.AutoPatching | IsNotNullOrEmpty) ? $configuration.AutoPatching -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_AutoPatching -eq 'true' - $createMajorTag = ($configuration.CreateMajorTag | IsNotNullOrEmpty) ? $configuration.CreateMajorTag -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_CreateMajorTag -eq 'true' - $createMinorTag = ($configuration.CreateMinorTag | IsNotNullOrEmpty) ? $configuration.CreateMinorTag -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_CreateMinorTag -eq 'true' - $datePrereleaseFormat = ($configuration.DatePrereleaseFormat | IsNotNullOrEmpty) ? $configuration.DatePrereleaseFormat : $env:PSMODULE_AUTO_RELEASE_INPUT_DatePrereleaseFormat - $incrementalPrerelease = ($configuration.IncrementalPrerelease | IsNotNullOrEmpty) ? $configuration.IncrementalPrerelease -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_IncrementalPrerelease -eq 'true' - $versionPrefix = ($configuration.VersionPrefix | IsNotNullOrEmpty) ? $configuration.VersionPrefix : $env:PSMODULE_AUTO_RELEASE_INPUT_VersionPrefix - $whatIf = ($configuration.WhatIf | IsNotNullOrEmpty) ? $configuration.WhatIf -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_WhatIf -eq 'true' - - $ignoreLabels = (($configuration.IgnoreLabels | IsNotNullOrEmpty) ? $configuration.IgnoreLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_IgnoreLabels) -split ',' | ForEach-Object { $_.Trim() } - $majorLabels = (($configuration.MajorLabels | IsNotNullOrEmpty) ? $configuration.MajorLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_MajorLabels) -split ',' | ForEach-Object { $_.Trim() } - $minorLabels = (($configuration.MinorLabels | IsNotNullOrEmpty) ? $configuration.MinorLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_MinorLabels) -split ',' | ForEach-Object { $_.Trim() } - $patchLabels = (($configuration.PatchLabels | IsNotNullOrEmpty) ? $configuration.PatchLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_PatchLabels) -split ',' | ForEach-Object { $_.Trim() } + $autoCleanup = [string]::IsNullOrEmpty($configuration.AutoCleanup) ? $configuration.AutoCleanup -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_AutoCleanup -eq 'true' + $autoPatching = [string]::IsNullOrEmpty($configuration.AutoPatching) ? $configuration.AutoPatching -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_AutoPatching -eq 'true' + $createMajorTag = [string]::IsNullOrEmpty($configuration.CreateMajorTag) ? $configuration.CreateMajorTag -EQ 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_CreateMajorTag -EQ 'true' + $createMinorTag = [string]::IsNullOrEmpty($configuration.CreateMinorTag) ? $configuration.CreateMinorTag -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_CreateMinorTag -eq 'true' + $datePrereleaseFormat = [string]::IsNullOrEmpty($configuration.DatePrereleaseFormat) ? $configuration.DatePrereleaseFormat : $env:PSMODULE_AUTO_RELEASE_INPUT_DatePrereleaseFormat + $incrementalPrerelease = [string]::IsNullOrEmpty($configuration.IncrementalPrerelease) ? $configuration.IncrementalPrerelease -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_IncrementalPrerelease -eq 'true' + $versionPrefix = [string]::IsNullOrEmpty($configuration.VersionPrefix) ? $configuration.VersionPrefix : $env:PSMODULE_AUTO_RELEASE_INPUT_VersionPrefix + $whatIf = [string]::IsNullOrEmpty($configuration.WhatIf) ? $configuration.WhatIf -eq 'true' : $env:PSMODULE_AUTO_RELEASE_INPUT_WhatIf -eq 'true' + + $ignoreLabels = ([string]::IsNullOrEmpty($configuration.IgnoreLabels) ? $configuration.IgnoreLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_IgnoreLabels) -split ',' | ForEach-Object { $_.Trim() } + $majorLabels = ([string]::IsNullOrEmpty($configuration.MajorLabels) ? $configuration.MajorLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_MajorLabels) -split ',' | ForEach-Object { $_.Trim() } + $minorLabels = ([string]::IsNullOrEmpty($configuration.MinorLabels) ? $configuration.MinorLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_MinorLabels) -split ',' | ForEach-Object { $_.Trim() } + $patchLabels = ([string]::IsNullOrEmpty($configuration.PatchLabels) ? $configuration.PatchLabels : $env:PSMODULE_AUTO_RELEASE_INPUT_PatchLabels) -split ',' | ForEach-Object { $_.Trim() } Write-Output '-------------------------------------------------' Write-Output "Auto cleanup enabled: [$autoCleanup]" From 54413c953ccb3551c1c794c1959b43c7f7acd808 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Fri, 7 Mar 2025 21:31:03 +0100 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=A9=B9=20[Patch]:=20Fix=20null=20chec?= =?UTF-8?q?ks=20and=20improve=20release=20creation=20logic=20in=20`main.ps?= =?UTF-8?q?1`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/main.ps1 | 182 +++++++++++++++++++++++------------------------ 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index 07bf627..003a9fc 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -153,7 +153,7 @@ LogGroup 'Get latest version' { $latestRelease = $releases | Where-Object { $_.isLatest -eq $true } $latestRelease | Format-List | Out-String $latestVersionString = $latestRelease.tagName - if ($latestVersionString | IsNotNullOrEmpty) { + if ([string]::IsNullOrEmpty($latestVersionString)) { $latestVersion = $latestVersionString | ConvertTo-PSSemVer Write-Output '-------------------------------------------------' Write-Output 'Latest version:' @@ -192,128 +192,128 @@ if ($createPrerelease -or $createRelease -or $whatIf) { $newVersion.Prerelease = $prereleaseName Write-Output "Partial new version: [$newVersion]" - if ($datePrereleaseFormat | IsNotNullOrEmpty) { - Write-Output "Using date-based prerelease: [$datePrereleaseFormat]." - $newVersion.Prerelease += ".$(Get-Date -Format $datePrereleaseFormat)" - Write-Output "Partial new version: [$newVersion]" - } + if ([string]::IsNullOrEmpty($datePrereleaseFormat) { + Write-Output "Using date-based prerelease: [$datePrereleaseFormat]." + $newVersion.Prerelease += ".$(Get-Date -Format $datePrereleaseFormat)" + Write-Output "Partial new version: [$newVersion]" + } - if ($incrementalPrerelease) { - $newVersion.BumpPrereleaseNumber() + if ($incrementalPrerelease) { + $newVersion.BumpPrereleaseNumber() + } } } - } - Write-Output '-------------------------------------------------' - Write-Output "New version: [$newVersion]" - Write-Output '-------------------------------------------------' + Write-Output '-------------------------------------------------' + Write-Output "New version: [$newVersion]" + Write-Output '-------------------------------------------------' + + LogGroup "Create new release [$newVersion]" { + if ($createPrerelease) { + $releaseExists = $releases.tagName -Contains $newVersion + if ($releaseExists -and -not $incrementalPrerelease) { + Write-Output 'Release already exists, recreating.' + if ($whatIf) { + Write-Output "WhatIf: gh release delete $newVersion --cleanup-tag --yes" + } else { + gh release delete $newVersion --cleanup-tag --yes + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to delete the release [$newVersion]." + exit $LASTEXITCODE + } + } + } - LogGroup "Create new release [$newVersion]" { - if ($createPrerelease) { - $releaseExists = $releases.tagName -Contains $newVersion - if ($releaseExists -and -not $incrementalPrerelease) { - Write-Output 'Release already exists, recreating.' if ($whatIf) { - Write-Output "WhatIf: gh release delete $newVersion --cleanup-tag --yes" + Write-Output "WhatIf: gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease" } else { - gh release delete $newVersion --cleanup-tag --yes + $releaseURL = gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to delete the release [$newVersion]." + Write-Error "Failed to create the release [$newVersion]." exit $LASTEXITCODE } } - } - if ($whatIf) { - Write-Output "WhatIf: gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease" - } else { - $releaseURL = gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create the release [$newVersion]." - exit $LASTEXITCODE - } - } - - if ($whatIf) { - Write-Output 'WhatIf: gh pr comment $pull_request.number -b "The release [$newVersion] has been created."' - } else { - gh pr comment $pull_request.number -b "The release [$newVersion]($releaseURL) has been created." - if ($LASTEXITCODE -ne 0) { - Write-Error 'Failed to comment on the pull request.' - exit $LASTEXITCODE + if ($whatIf) { + Write-Output 'WhatIf: gh pr comment $pull_request.number -b "The release [$newVersion] has been created."' + } else { + gh pr comment $pull_request.number -b "The release [$newVersion]($releaseURL) has been created." + if ($LASTEXITCODE -ne 0) { + Write-Error 'Failed to comment on the pull request.' + exit $LASTEXITCODE + } } - } - } else { - if ($whatIf) { - Write-Output "WhatIf: gh release create $newVersion --title $newVersion --generate-notes" } else { - gh release create $newVersion --title $newVersion --generate-notes - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create the release [$newVersion]." - exit $LASTEXITCODE - } - } - - if ($createMajorTag) { - $majorTag = ('{0}{1}' -f $newVersion.Prefix, $newVersion.Major) if ($whatIf) { - Write-Output "WhatIf: git tag -f $majorTag 'main'" + Write-Output "WhatIf: gh release create $newVersion --title $newVersion --generate-notes" } else { - git tag -f $majorTag 'main' + gh release create $newVersion --title $newVersion --generate-notes if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create major tag [$majorTag]." + Write-Error "Failed to create the release [$newVersion]." exit $LASTEXITCODE } } - } - if ($createMinorTag) { - $minorTag = ('{0}{1}.{2}' -f $newVersion.Prefix, $newVersion.Major, $newVersion.Minor) + if ($createMajorTag) { + $majorTag = ('{0}{1}' -f $newVersion.Prefix, $newVersion.Major) + if ($whatIf) { + Write-Output "WhatIf: git tag -f $majorTag 'main'" + } else { + git tag -f $majorTag 'main' + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create major tag [$majorTag]." + exit $LASTEXITCODE + } + } + } + + if ($createMinorTag) { + $minorTag = ('{0}{1}.{2}' -f $newVersion.Prefix, $newVersion.Major, $newVersion.Minor) + if ($whatIf) { + Write-Output "WhatIf: git tag -f $minorTag 'main'" + } else { + git tag -f $minorTag 'main' + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create minor tag [$minorTag]." + exit $LASTEXITCODE + } + } + } + if ($whatIf) { - Write-Output "WhatIf: git tag -f $minorTag 'main'" + Write-Output 'WhatIf: git push origin --tags --force' } else { - git tag -f $minorTag 'main' + git push origin --tags --force if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create minor tag [$minorTag]." + Write-Error 'Failed to push tags.' exit $LASTEXITCODE } } } - - if ($whatIf) { - Write-Output 'WhatIf: git push origin --tags --force' - } else { - git push origin --tags --force - if ($LASTEXITCODE -ne 0) { - Write-Error 'Failed to push tags.' - exit $LASTEXITCODE - } - } } + Write-GitHubNotice -Title 'Release created' -Message $newVersion + } else { + Write-Output 'Skipping release creation.' } - Write-GitHubNotice -Title 'Release created' -Message $newVersion -} else { - Write-Output 'Skipping release creation.' -} -LogGroup 'List prereleases using the same name' { - $prereleasesToCleanup = $releases | Where-Object { $_.tagName -like "*$prereleaseName*" } - $prereleasesToCleanup | Select-Object -Property name, publishedAt, isPrerelease, isLatest | Format-Table | Out-String -} + LogGroup 'List prereleases using the same name' { + $prereleasesToCleanup = $releases | Where-Object { $_.tagName -like "*$prereleaseName*" } + $prereleasesToCleanup | Select-Object -Property name, publishedAt, isPrerelease, isLatest | Format-Table | Out-String + } -if ((($closedPullRequest -or $createRelease) -and $autoCleanup) -or $whatIf) { - LogGroup "Cleanup prereleases for [$prereleaseName]" { - foreach ($rel in $prereleasesToCleanup) { - $relTagName = $rel.tagName - Write-Output "Deleting prerelease: [$relTagName]." - if ($whatIf) { - Write-Output "WhatIf: gh release delete $($rel.tagName) --cleanup-tag --yes" - } else { - gh release delete $rel.tagName --cleanup-tag --yes - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to delete release [$relTagName]." - exit $LASTEXITCODE + if ((($closedPullRequest -or $createRelease) -and $autoCleanup) -or $whatIf) { + LogGroup "Cleanup prereleases for [$prereleaseName]" { + foreach ($rel in $prereleasesToCleanup) { + $relTagName = $rel.tagName + Write-Output "Deleting prerelease: [$relTagName]." + if ($whatIf) { + Write-Output "WhatIf: gh release delete $($rel.tagName) --cleanup-tag --yes" + } else { + gh release delete $rel.tagName --cleanup-tag --yes + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to delete release [$relTagName]." + exit $LASTEXITCODE + } } } } } -} From df5abff6d5706e156c3759854496daace51a7b68 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Fri, 7 Mar 2025 21:32:25 +0100 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=A9=B9=20[Fix]:=20Correct=20null=20ch?= =?UTF-8?q?eck=20syntax=20and=20streamline=20release=20creation=20logic=20?= =?UTF-8?q?in=20`main.ps1`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/main.ps1 | 180 +++++++++++++++++++++++------------------------ 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index 003a9fc..3872bbb 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -192,128 +192,128 @@ if ($createPrerelease -or $createRelease -or $whatIf) { $newVersion.Prerelease = $prereleaseName Write-Output "Partial new version: [$newVersion]" - if ([string]::IsNullOrEmpty($datePrereleaseFormat) { - Write-Output "Using date-based prerelease: [$datePrereleaseFormat]." - $newVersion.Prerelease += ".$(Get-Date -Format $datePrereleaseFormat)" - Write-Output "Partial new version: [$newVersion]" - } + if ([string]::IsNullOrEmpty($datePrereleaseFormat)) { + Write-Output "Using date-based prerelease: [$datePrereleaseFormat]." + $newVersion.Prerelease += ".$(Get-Date -Format $datePrereleaseFormat)" + Write-Output "Partial new version: [$newVersion]" + } - if ($incrementalPrerelease) { - $newVersion.BumpPrereleaseNumber() - } + if ($incrementalPrerelease) { + $newVersion.BumpPrereleaseNumber() } } - Write-Output '-------------------------------------------------' - Write-Output "New version: [$newVersion]" - Write-Output '-------------------------------------------------' - - LogGroup "Create new release [$newVersion]" { - if ($createPrerelease) { - $releaseExists = $releases.tagName -Contains $newVersion - if ($releaseExists -and -not $incrementalPrerelease) { - Write-Output 'Release already exists, recreating.' - if ($whatIf) { - Write-Output "WhatIf: gh release delete $newVersion --cleanup-tag --yes" - } else { - gh release delete $newVersion --cleanup-tag --yes - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to delete the release [$newVersion]." - exit $LASTEXITCODE - } - } - } + } + Write-Output '-------------------------------------------------' + Write-Output "New version: [$newVersion]" + Write-Output '-------------------------------------------------' + LogGroup "Create new release [$newVersion]" { + if ($createPrerelease) { + $releaseExists = $releases.tagName -Contains $newVersion + if ($releaseExists -and -not $incrementalPrerelease) { + Write-Output 'Release already exists, recreating.' if ($whatIf) { - Write-Output "WhatIf: gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease" + Write-Output "WhatIf: gh release delete $newVersion --cleanup-tag --yes" } else { - $releaseURL = gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease + gh release delete $newVersion --cleanup-tag --yes if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create the release [$newVersion]." + Write-Error "Failed to delete the release [$newVersion]." exit $LASTEXITCODE } } + } - if ($whatIf) { - Write-Output 'WhatIf: gh pr comment $pull_request.number -b "The release [$newVersion] has been created."' - } else { - gh pr comment $pull_request.number -b "The release [$newVersion]($releaseURL) has been created." - if ($LASTEXITCODE -ne 0) { - Write-Error 'Failed to comment on the pull request.' - exit $LASTEXITCODE - } + if ($whatIf) { + Write-Output "WhatIf: gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease" + } else { + $releaseURL = gh release create $newVersion --title $newVersion --target $prHeadRef --generate-notes --prerelease + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create the release [$newVersion]." + exit $LASTEXITCODE } + } + + if ($whatIf) { + Write-Output 'WhatIf: gh pr comment $pull_request.number -b "The release [$newVersion] has been created."' + } else { + gh pr comment $pull_request.number -b "The release [$newVersion]($releaseURL) has been created." + if ($LASTEXITCODE -ne 0) { + Write-Error 'Failed to comment on the pull request.' + exit $LASTEXITCODE + } + } + } else { + if ($whatIf) { + Write-Output "WhatIf: gh release create $newVersion --title $newVersion --generate-notes" } else { + gh release create $newVersion --title $newVersion --generate-notes + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create the release [$newVersion]." + exit $LASTEXITCODE + } + } + + if ($createMajorTag) { + $majorTag = ('{0}{1}' -f $newVersion.Prefix, $newVersion.Major) if ($whatIf) { - Write-Output "WhatIf: gh release create $newVersion --title $newVersion --generate-notes" + Write-Output "WhatIf: git tag -f $majorTag 'main'" } else { - gh release create $newVersion --title $newVersion --generate-notes + git tag -f $majorTag 'main' if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create the release [$newVersion]." + Write-Error "Failed to create major tag [$majorTag]." exit $LASTEXITCODE } } + } - if ($createMajorTag) { - $majorTag = ('{0}{1}' -f $newVersion.Prefix, $newVersion.Major) - if ($whatIf) { - Write-Output "WhatIf: git tag -f $majorTag 'main'" - } else { - git tag -f $majorTag 'main' - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create major tag [$majorTag]." - exit $LASTEXITCODE - } - } - } - - if ($createMinorTag) { - $minorTag = ('{0}{1}.{2}' -f $newVersion.Prefix, $newVersion.Major, $newVersion.Minor) - if ($whatIf) { - Write-Output "WhatIf: git tag -f $minorTag 'main'" - } else { - git tag -f $minorTag 'main' - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to create minor tag [$minorTag]." - exit $LASTEXITCODE - } - } - } - + if ($createMinorTag) { + $minorTag = ('{0}{1}.{2}' -f $newVersion.Prefix, $newVersion.Major, $newVersion.Minor) if ($whatIf) { - Write-Output 'WhatIf: git push origin --tags --force' + Write-Output "WhatIf: git tag -f $minorTag 'main'" } else { - git push origin --tags --force + git tag -f $minorTag 'main' if ($LASTEXITCODE -ne 0) { - Write-Error 'Failed to push tags.' + Write-Error "Failed to create minor tag [$minorTag]." exit $LASTEXITCODE } } } + + if ($whatIf) { + Write-Output 'WhatIf: git push origin --tags --force' + } else { + git push origin --tags --force + if ($LASTEXITCODE -ne 0) { + Write-Error 'Failed to push tags.' + exit $LASTEXITCODE + } + } } - Write-GitHubNotice -Title 'Release created' -Message $newVersion - } else { - Write-Output 'Skipping release creation.' } + Write-GitHubNotice -Title 'Release created' -Message $newVersion +} else { + Write-Output 'Skipping release creation.' +} - LogGroup 'List prereleases using the same name' { - $prereleasesToCleanup = $releases | Where-Object { $_.tagName -like "*$prereleaseName*" } - $prereleasesToCleanup | Select-Object -Property name, publishedAt, isPrerelease, isLatest | Format-Table | Out-String - } +LogGroup 'List prereleases using the same name' { + $prereleasesToCleanup = $releases | Where-Object { $_.tagName -like "*$prereleaseName*" } + $prereleasesToCleanup | Select-Object -Property name, publishedAt, isPrerelease, isLatest | Format-Table | Out-String +} - if ((($closedPullRequest -or $createRelease) -and $autoCleanup) -or $whatIf) { - LogGroup "Cleanup prereleases for [$prereleaseName]" { - foreach ($rel in $prereleasesToCleanup) { - $relTagName = $rel.tagName - Write-Output "Deleting prerelease: [$relTagName]." - if ($whatIf) { - Write-Output "WhatIf: gh release delete $($rel.tagName) --cleanup-tag --yes" - } else { - gh release delete $rel.tagName --cleanup-tag --yes - if ($LASTEXITCODE -ne 0) { - Write-Error "Failed to delete release [$relTagName]." - exit $LASTEXITCODE - } +if ((($closedPullRequest -or $createRelease) -and $autoCleanup) -or $whatIf) { + LogGroup "Cleanup prereleases for [$prereleaseName]" { + foreach ($rel in $prereleasesToCleanup) { + $relTagName = $rel.tagName + Write-Output "Deleting prerelease: [$relTagName]." + if ($whatIf) { + Write-Output "WhatIf: gh release delete $($rel.tagName) --cleanup-tag --yes" + } else { + gh release delete $rel.tagName --cleanup-tag --yes + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to delete release [$relTagName]." + exit $LASTEXITCODE } } } } +}