Skip to content

Commit 0ae6591

Browse files
committed
fix
1 parent e395103 commit 0ae6591

File tree

1 file changed

+17
-34
lines changed

1 file changed

+17
-34
lines changed

.github/workflows/create-release.yml

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ on:
2222
- minor
2323
- major
2424

25-
continue_prerelease:
26-
type: boolean
27-
description: Continue existing prerelease (if available)
28-
default: false
29-
3025
specific_version:
3126
type: string
3227
description: Specify exact version (e.g., 3.3.0-alpha.1) - overrides other version settings
@@ -52,25 +47,6 @@ jobs:
5247
token: ${{ steps.generate-token.outputs.token }}
5348
fetch-depth: 0
5449

55-
- name: debug git tags
56-
run: |
57-
echo "All tags:"
58-
git tag -l
59-
echo "---"
60-
echo "Tags sorted by version:"
61-
git tag -l --sort=-v:refname
62-
echo "---"
63-
echo "Alpha tags sorted by version:"
64-
git tag -l "*-alpha*" --sort=-v:refname
65-
echo "---"
66-
echo "Tag details:"
67-
git for-each-ref --format="%(refname:short) %(objecttype) %(taggerdate)" refs/tags/
68-
echo "---"
69-
echo "Latest tag details:"
70-
LATEST_TAG=$(git describe --tags --abbrev=0)
71-
echo "Latest tag: $LATEST_TAG"
72-
git show $LATEST_TAG
73-
7450
- name: initialize mandatory git config
7551
run: |
7652
git config user.name "GitHub Release Bot"
@@ -81,24 +57,31 @@ jobs:
8157

8258
- name: run release-it
8359
run: |
84-
params=() # Determine prerelease logic
60+
params=()
61+
62+
# Determine prerelease logic
8563
if [[ -n "${{ github.event.inputs.specific_version }}" ]]; then
8664
params+=(--release=${{ github.event.inputs.specific_version }})
87-
# Determine prerelease logic
8865
elif [[ "${{ github.event.inputs.release_type }}" == "stable" ]]; then
8966
params+=(--${{ github.event.inputs.version_bump }})
90-
elif [[ "${{ github.event.inputs.continue_prerelease }}" == "true" ]]; then
67+
else
68+
# For prerelease types (alpha, beta, rc)
9169
# Add verbose logging to understand release-it's process
9270
params+=(--verbose)
9371
# Tell release-it to use prerelease tags
9472
params+=(--preReleaseId=${{ github.event.inputs.release_type }})
95-
params+=(--increment=prerelease)
96-
params+=(--preRelease=${{ github.event.inputs.release_type }})
9773
params+=(--git.tagMatch="v*-${{ github.event.inputs.release_type }}.*")
98-
params+=(--plugins.@release-it/keep-a-changelog.keepUnreleased)
99-
params+=(--no-plugins.@release-it/keep-a-changelog.strictLatest)
100-
else
101-
params+=(--${{ github.event.inputs.version_bump }})
74+
75+
# Check if we already have a prerelease of this type
76+
LATEST_PRERELEASE=$(git tag -l "*-${{ github.event.inputs.release_type }}*" --sort=-v:refname | head -n 1)
77+
if [[ -n "$LATEST_PRERELEASE" ]]; then
78+
echo "Found existing prerelease: $LATEST_PRERELEASE - continuing prerelease series"
79+
params+=(--increment=prerelease)
80+
else
81+
echo "No existing prerelease found - starting new prerelease series"
82+
params+=(--${{ github.event.inputs.version_bump }})
83+
fi
84+
10285
params+=(--preRelease=${{ github.event.inputs.release_type }})
10386
params+=(--plugins.@release-it/keep-a-changelog.keepUnreleased)
10487
params+=(--no-plugins.@release-it/keep-a-changelog.strictLatest)
@@ -113,4 +96,4 @@ jobs:
11396
echo "command: release-it ${params[@]}"
11497
release-it "${params[@]}"
11598
env:
116-
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
99+
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}

0 commit comments

Comments
 (0)