1313 - patch
1414 - minor
1515 - major
16- push :
17- branches : [ main ]
16+ version :
17+ description : ' Version number (for auto-triggered releases)'
18+ required : false
19+ type : ' string'
1820
1921jobs :
2022 release :
@@ -24,14 +26,13 @@ jobs:
2426 contents : write
2527 issues : write
2628 pull-requests : write
27- if : " !contains(github.event.head_commit.message, 'skip ci') && !contains(github.event.head_commit.message, 'chore(release)')"
2829
2930 steps :
3031 - name : Checkout
3132 uses : actions/checkout@v4
3233 with :
3334 fetch-depth : 0
34- token : ${{ secrets.GH_TOKEN || secrets. GITHUB_TOKEN }}
35+ token : ${{ secrets.GITHUB_TOKEN }}
3536
3637 - name : Setup Node.js
3738 uses : actions/setup-node@v4
@@ -70,13 +71,48 @@ jobs:
7071 - name : Test
7172 run : pnpm test:ci
7273
74+ - name : Check for Draft Release
75+ if : github.event.inputs.version != ''
76+ env :
77+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
78+ run : |
79+ VERSION="${{ github.event.inputs.version }}"
80+ echo "Checking for draft release v$VERSION"
81+
82+ # Check if draft release exists
83+ RELEASE_EXISTS=$(gh release view v$VERSION --json isDraft 2>/dev/null || echo "{}")
84+ IS_DRAFT=$(echo "$RELEASE_EXISTS" | jq -r '.isDraft // false')
85+
86+ if [ "$IS_DRAFT" != "true" ]; then
87+ echo "No draft release found for v$VERSION, creating one..."
88+ gh release create v$VERSION \
89+ --draft \
90+ --title "v$VERSION" \
91+ --notes "Release v$VERSION"
92+ else
93+ echo "Draft release v$VERSION found"
94+ fi
95+
7396 - name : Release
7497 env :
75- GITHUB_TOKEN : ${{ secrets.GH_TOKEN || secrets. GITHUB_TOKEN }}
98+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7699 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
77100 run : |
78- if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.releaseType }}" != "auto" ]; then
101+ if [ "${{ github.event.inputs.releaseType }}" != "auto" ]; then
102+ # Manual release with specific type
79103 pnpm release --release-as ${{ github.event.inputs.releaseType }}
80104 else
105+ # Auto release (triggered by version-bump workflow)
81106 pnpm release
82107 fi
108+
109+ - name : Publish Draft Release
110+ if : github.event.inputs.version != ''
111+ env :
112+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
113+ run : |
114+ VERSION="${{ github.event.inputs.version }}"
115+ echo "Publishing draft release v$VERSION"
116+
117+ # Convert draft to published release
118+ gh release edit v$VERSION --draft=false
0 commit comments