Skip to content

Commit d5eff73

Browse files
Refactor release type calculation for clarity and accuracy in init.ps1
1 parent dfe5b08 commit d5eff73

1 file changed

Lines changed: 9 additions & 13 deletions

File tree

scripts/init.ps1

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,12 @@ LogGroup 'Pull request - Labels' {
9999
$labels | Format-List | Out-String
100100
}
101101

102-
LogGroup 'Calculate release type' {
102+
LogGroup 'Determine release configuration' {
103103
$prereleaseName = $prHeadRef -replace '[^a-zA-Z0-9]'
104104

105-
# Validate ReleaseType - defensive check for invalid values.
106-
# Note: The empty check below should never trigger since action.yml provides a default of 'Release',
107-
# but is included for defensive programming in case the script is called directly or defaults change.
105+
# Validate ReleaseType input from Get-PSModuleSettings.
106+
# The ReleaseType is pre-calculated based on PR state and labels by the settings action,
107+
# so we trust it here rather than recalculating from labels.
108108
$validReleaseTypes = @('Release', 'Prerelease', 'None')
109109
if ([string]::IsNullOrWhiteSpace($releaseType)) {
110110
Write-Error "ReleaseType input is required. Valid values are: $($validReleaseTypes -join ', ')"
@@ -119,13 +119,14 @@ LogGroup 'Calculate release type' {
119119
$createPrerelease = $releaseType -eq 'Prerelease'
120120
$shouldPublish = $createRelease -or $createPrerelease
121121

122+
# Check for ignore labels that override the release type
122123
$ignoreRelease = ($labels | Where-Object { $ignoreLabels -contains $_ }).Count -gt 0
123-
if ($ignoreRelease) {
124+
if ($ignoreRelease -and $shouldPublish) {
124125
Write-Output 'Ignoring release creation due to ignore label.'
125126
$shouldPublish = $false
126127
}
127128

128-
# Only calculate version bumps if we intend to publish (ReleaseType is not 'None')
129+
# Determine version bump type from labels (only when publishing)
129130
$majorRelease = $false
130131
$minorRelease = $false
131132
$patchRelease = $false
@@ -138,18 +139,13 @@ LogGroup 'Calculate release type' {
138139
($labels | Where-Object { $patchLabels -contains $_ }
139140
).Count -gt 0 -or $autoPatching) -and -not $majorRelease -and -not $minorRelease
140141

141-
# Check if any version bump applies
142142
$hasVersionBump = $majorRelease -or $minorRelease -or $patchRelease
143143
if (-not $hasVersionBump) {
144144
Write-Output 'No version bump label found and AutoPatching is disabled. Skipping publish.'
145145
$shouldPublish = $false
146146
}
147-
} else {
148-
if ($ignoreRelease) {
149-
Write-Output 'Skipping version bump calculation due to ignore label.'
150-
} else {
151-
Write-Output "ReleaseType is [$releaseType]. Skipping version bump calculation."
152-
}
147+
} elseif (-not $ignoreRelease) {
148+
Write-Output "ReleaseType is [$releaseType]. No publishing required."
153149
}
154150

155151
Write-Output '-------------------------------------------------'

0 commit comments

Comments
 (0)