Skip to content

Commit f5e1a40

Browse files
Rename AutoCleanup to CleanupPrereleases and remove Cleanup from ReleaseType enum
1 parent 6dc9cd1 commit f5e1a40

2 files changed

Lines changed: 17 additions & 14 deletions

File tree

action.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ inputs:
1313
APIKey:
1414
description: PowerShell Gallery API Key.
1515
required: true
16-
AutoCleanup:
17-
description: Control wether to automatically delete the prerelease tags after the stable release is created.
16+
CleanupPrereleases:
17+
description: When enabled, only performs cleanup of old prerelease tags without creating a new release or publishing to PSGallery.
1818
required: false
19-
default: 'true'
19+
default: 'false'
2020
AutoPatching:
2121
description: Control wether to automatically handle patches. If disabled, the action will only create a patch release if the pull request has a 'patch' label.
2222
required: false
@@ -50,7 +50,7 @@ inputs:
5050
required: false
5151
default: NoRelease
5252
ReleaseType:
53-
description: The type of release to create. Values are 'Release' (stable), 'Prerelease', 'Cleanup' (delete old prereleases), or 'None'.
53+
description: The type of release to create. Values are 'Release' (stable), 'Prerelease', or 'None'. Cleanup is handled separately via CleanupPrereleases.
5454
required: false
5555
default: Release
5656
WhatIf:
@@ -87,7 +87,7 @@ runs:
8787
PSMODULE_PUBLISH_PSMODULE_INPUT_Name: ${{ inputs.Name }}
8888
PSMODULE_PUBLISH_PSMODULE_INPUT_ModulePath: ${{ inputs.ModulePath }}
8989
PSMODULE_PUBLISH_PSMODULE_INPUT_APIKey: ${{ inputs.APIKey }}
90-
PSMODULE_PUBLISH_PSMODULE_INPUT_AutoCleanup: ${{ inputs.AutoCleanup }}
90+
PSMODULE_PUBLISH_PSMODULE_INPUT_CleanupPrereleases: ${{ inputs.CleanupPrereleases }}
9191
PSMODULE_PUBLISH_PSMODULE_INPUT_AutoPatching: ${{ inputs.AutoPatching }}
9292
PSMODULE_PUBLISH_PSMODULE_INPUT_DatePrereleaseFormat: ${{ inputs.DatePrereleaseFormat }}
9393
PSMODULE_PUBLISH_PSMODULE_INPUT_IgnoreLabels: ${{ inputs.IgnoreLabels }}

scripts/helpers/Publish-PSModule.ps1

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@
3838
)
3939

4040
Set-GitHubLogGroup 'Set configuration' {
41-
$autoCleanup = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_AutoCleanup -eq 'true'
41+
$cleanupPrereleases = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_CleanupPrereleases -eq 'true'
4242
$autoPatching = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_AutoPatching -eq 'true'
4343
$incrementalPrerelease = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_IncrementalPrerelease -eq 'true'
4444
$datePrereleaseFormat = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_DatePrereleaseFormat
4545
$versionPrefix = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_VersionPrefix
4646
$whatIf = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_WhatIf -eq 'true'
4747
$ignoreLabels = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_IgnoreLabels -split ',' | ForEach-Object { $_.Trim() }
48-
$releaseType = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_ReleaseType # 'Release', 'Prerelease', 'Cleanup', or 'None'
48+
$releaseType = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_ReleaseType # 'Release', 'Prerelease', or 'None'
4949
$majorLabels = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_MajorLabels -split ',' | ForEach-Object { $_.Trim() }
5050
$minorLabels = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_MinorLabels -split ',' | ForEach-Object { $_.Trim() }
5151
$patchLabels = $env:PSMODULE_PUBLISH_PSMODULE_INPUT_PatchLabels -split ',' | ForEach-Object { $_.Trim() }
@@ -60,7 +60,7 @@
6060
}
6161

6262
[pscustomobject]@{
63-
AutoCleanup = $autoCleanup
63+
CleanupPrereleases = $cleanupPrereleases
6464
AutoPatching = $autoPatching
6565
IncrementalPrerelease = $incrementalPrerelease
6666
DatePrereleaseFormat = $datePrereleaseFormat
@@ -114,7 +114,7 @@
114114
$prereleaseName = $prHeadRef -replace '[^a-zA-Z0-9]'
115115

116116
# Validate ReleaseType - fail if not provided or invalid to catch configuration errors
117-
$validReleaseTypes = @('Release', 'Prerelease', 'Cleanup', 'None')
117+
$validReleaseTypes = @('Release', 'Prerelease', 'None')
118118
if ([string]::IsNullOrWhiteSpace($releaseType)) {
119119
Write-Error "ReleaseType input is required. Valid values are: $($validReleaseTypes -join ', ')"
120120
exit 1
@@ -126,10 +126,13 @@
126126

127127
$createRelease = $releaseType -eq 'Release'
128128
$createPrerelease = $releaseType -eq 'Prerelease'
129-
$isCleanupMode = $releaseType -eq 'Cleanup'
130129

131-
if ($releaseType -eq 'None') {
132-
Write-Output 'ReleaseType is None. Skipping release creation.'
130+
# Note: cleanupPrereleases is pre-calculated by Get-PSModuleSettings based on:
131+
# - The release situation (Release or Abandoned PR)
132+
# - The user's CleanupPrereleases preference
133+
134+
if ($releaseType -eq 'None' -and -not $cleanupPrereleases) {
135+
Write-Output 'ReleaseType is None and no cleanup needed. Skipping.'
133136
return
134137
}
135138

@@ -147,12 +150,12 @@
147150

148151
Write-Output '-------------------------------------------------'
149152
Write-Output "ReleaseType: [$releaseType]"
153+
Write-Output "CleanupPrereleases: [$cleanupPrereleases]"
150154
Write-Output "Create a release: [$createRelease]"
151155
Write-Output "Create a prerelease: [$createPrerelease]"
152156
Write-Output "Create a major release: [$majorRelease]"
153157
Write-Output "Create a minor release: [$minorRelease]"
154158
Write-Output "Create a patch release: [$patchRelease]"
155-
Write-Output "ReleaseType is Cleanup: [$isCleanupMode]"
156159
Write-Output '-------------------------------------------------'
157160
}
158161

@@ -455,7 +458,7 @@
455458
$prereleasesToCleanup | Select-Object -Property name, publishedAt, isPrerelease, isLatest | Format-Table | Out-String
456459
}
457460

458-
if ((($isCleanupMode -or $createRelease) -and $autoCleanup) -or $whatIf) {
461+
if ($cleanupPrereleases -or $whatIf) {
459462
Set-GitHubLogGroup "Cleanup prereleases for [$prereleaseName]" {
460463
foreach ($rel in $prereleasesToCleanup) {
461464
$relTagName = $rel.tagName

0 commit comments

Comments
 (0)