22name : Release
33
44on :
5- push :
5+ pull_request :
66 branches :
77 - main
8+ types : [closed]
9+ workflow_dispatch :
10+ inputs :
11+ release_type :
12+ description : ' Type of release'
13+ required : true
14+ default : ' patch'
15+ type : choice
16+ options :
17+ - patch
18+ - minor
19+ - major
20+ prerelease :
21+ description : ' Mark as prerelease'
22+ required : false
23+ default : false
24+ type : boolean
825
926permissions :
1027 contents : write
@@ -13,39 +30,36 @@ permissions:
1330jobs :
1431 release-please :
1532 runs-on : ubuntu-latest
33+ if : github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true)
1634 outputs :
1735 releases_created : ${{ steps.release.outputs.releases_created }}
1836 tag_name : ${{ steps.release.outputs.tag_name }}
1937 steps :
20- - name : 🚀 Create Release PR or Release
21- id : release
38+ - name : 🚀 Create Release PR or Release (Auto)
39+ if : github.event_name == 'pull_request'
40+ id : release_auto
2241 uses : google-github-actions/release-please-action@v4
2342 with :
2443 config-file : release-please-config.json
2544 manifest-file : .release-please-manifest.json
2645
27- # Optional: Deploy or publish after release is created
28- publish :
29- needs : release-please
30- runs-on : ubuntu-latest
31- if : ${{ needs.release-please.outputs.releases_created }}
32- steps :
33- - uses : actions/checkout@v4
34-
35- - name : ⚙️ Setup Node.js 22.x
36- uses : actions/setup-node@v4
46+ - name : 🚀 Create Release PR or Release (Manual)
47+ if : github.event_name == 'workflow_dispatch'
48+ id : release_manual
49+ uses : google-github-actions/release-please-action@v4
3750 with :
38- node-version : 22.x
39- cache : ' npm'
40- cache-dependency-path : Website/package-lock.json
41-
42- - name : 📦 Install dependencies
43- run : npm ci
44- working-directory : Website
45-
46- - name : 🏗️ Build
47- run : npm run build
48- working-directory : Website
49-
50- # Add any additional deployment steps here
51- # For example: deploy to production, publish to npm, etc.
51+ config-file : release-please-config.json
52+ manifest-file : .release-please-manifest.json
53+ release-type : ${{ github.event.inputs.release_type }}
54+ prerelease : ${{ github.event.inputs.prerelease }}
55+
56+ - name : Set outputs
57+ id : release
58+ run : |
59+ if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
60+ echo "releases_created=${{ steps.release_manual.outputs.releases_created }}" >> $GITHUB_OUTPUT
61+ echo "tag_name=${{ steps.release_manual.outputs.tag_name }}" >> $GITHUB_OUTPUT
62+ else
63+ echo "releases_created=${{ steps.release_auto.outputs.releases_created }}" >> $GITHUB_OUTPUT
64+ echo "tag_name=${{ steps.release_auto.outputs.tag_name }}" >> $GITHUB_OUTPUT
65+ fi
0 commit comments