@@ -4,73 +4,36 @@ concurrency:
44
55jobs :
66 release :
7- outputs :
8- did_release : ${{ steps.should_release.outputs.should_release }}
7+ if : " startsWith(github.event.head_commit.message, 'chore: release v')"
98 runs-on : ubuntu-latest
109 steps :
11- - uses : actions/checkout@v4
10+ - uses : actions/checkout@v6
1211 with :
1312 fetch-depth : 0
14- - uses : ./.github/actions/prepare
15- - run : pnpm build
1613
17- - id : should_release
18- run : echo "should_release=$(pnpm run should-semantic-release &> /dev/null && echo '1' || echo '0')" >> "$GITHUB_OUTPUT"
19-
20- - if : steps.should_release.outputs.should_release != '0'
21- uses : ./.github/actions/unprotect-main
22- with :
23- ACCESS_TOKEN : ${{ secrets.ACCESS_TOKEN }}
24- - env :
25- GITHUB_TOKEN : ${{ github.token }}
26- if : steps.should_release.outputs.should_release != '0'
27- run : pnpm release-it --verbose
28-
29- - if : steps.should_release.outputs.should_release != '0'
30- name : Generate Docs
31- run : pnpm run docs
32-
33- - if : steps.should_release.outputs.should_release != '0'
34- name : Create a pages artifact
35- uses : actions/upload-pages-artifact@v3
14+ - id : regex-match
15+ uses : kaisugi/action-regex-match@v1.0.2
3616 with :
37- path : ./docs/generated
17+ flags : " su"
18+ regex : ' ^chore: release v(\d+\.\d+\.\d+(?:-(?:alpha|beta|rc)\.\d+)?)(?: \(#\d+\))?(?:\n|$)'
19+ text : ${{ github.event.head_commit.message }}
3820
39- - id : deployment
40- if : steps.should_release.outputs.should_release != '0'
41- name : Deploy to GitHub Pages
42- uses : actions/deploy-pages@v2
21+ - id : release_version
22+ if : steps.regex-match.outputs.match != ''
23+ run : echo "release_version=${{ steps.regex-match.outputs.group1 }}" >> "$GITHUB_OUTPUT"
4324
44- - if : steps.should_release.outputs.should_release != '0'
45- name : Update Coverage Badge
46- run : cp ./docs/generated/coverage.svg ./docs/coverage.svg
25+ - if : steps.release_version.outputs.release_version != ''
26+ uses : ./.github/actions/prepare
4727
48- - id : coverage_changed
49- if : steps.should_release.outputs.should_release != '0'
50- run : echo "coverage_changed=$(git status --porcelain -u | grep -c docs/coverage.svg)" >> "$GITHUB_OUTPUT"
28+ - if : steps.release_version.outputs.release_version != ''
29+ name : Build
30+ run : pnpm run build
5131
5232 - env :
53- COVERAGE_CHANGED : ${{ steps.coverage_changed.outputs.coverage_changed }}
54- id : push_coverage
55- if : steps.should_release.outputs.should_release != '0'
56- run : echo "push_coverage=$(if [[ "$COVERAGE_CHANGED" != '0' ]] ; then echo '1' ; else echo '0' ; fi)" >> "$GITHUB_OUTPUT"
57-
58- - if : steps.should_release.outputs.should_release != '0' && steps.push_coverage.outputs.push_coverage != '0'
59- uses : ./.github/actions/unprotect-main
60- with :
61- ACCESS_TOKEN : ${{ secrets.ACCESS_TOKEN }}
62-
63- - if : steps.should_release.outputs.should_release != '0' && steps.push_coverage.outputs.push_coverage != '0'
64- run : |
65- git add docs/coverage.svg
66- git commit -m "docs: update documentation coverage badge"
67- git push
68-
69- - continue-on-error : true
70- if : always() && steps.should_release.outputs.should_release != '0'
71- uses : ./.github/actions/protect-main
72- with :
73- ACCESS_TOKEN : ${{ secrets.ACCESS_TOKEN }}
33+ GITHUB_TOKEN : ${{ github.token }}
34+ if : steps.release_version.outputs.release_version != ''
35+ name : Release
36+ run : pnpm dlx release-it --npm.allowSameVersion -i ${{ steps.release_version.outputs.release_version }}
7437
7538name : Release
7639
8245permissions :
8346 contents : write
8447 id-token : write
48+ issues : write
49+ pull-requests : write
0 commit comments