@@ -3,6 +3,8 @@ name: Release
33on :
44 push :
55 branches : [main, alpha, beta, rc, v4]
6+ repository_dispatch :
7+ types : [release]
68
79concurrency :
810 group : ${{ github.workflow }}-${{ github.event.number || github.ref }}
1416permissions :
1517 contents : write
1618 id-token : write
19+ pull-requests : write
1720
1821jobs :
1922 release :
@@ -34,27 +37,37 @@ jobs:
3437 - name : Stop Nx Agents
3538 if : ${{ always() }}
3639 run : npx nx-cloud stop-all-agents
37- - name : Version Packages
38- run : pnpm run changeset:version
39- env :
40- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
41- - name : Commit version files
40+ - name : Check for Changesets marked as major
41+ id : major
4242 run : |
43- if [[ -n "$(git status --porcelain)" ]]; then
44- git config --global user.name 'Tanner Linsley'
45- git config --global user.email '[email protected] ' 46- git add -A
47- git commit -m "ci: Version Packages"
48- git push
49- fi
43+ echo "found=false" >> $GITHUB_OUTPUT
44+ regex="(major)"
45+ shopt -s nullglob
46+ for file in .changeset/*.md; do
47+ if [[ $(cat $file) =~ $regex ]]; then
48+ echo "found=true" >> $GITHUB_OUTPUT
49+ fi
50+ done
51+ - name : Run Changesets (version or publish)
52+ id : changesets
53+ uses :
changesets/[email protected] 54+ with :
55+ version : pnpm run changeset:version
56+ publish : pnpm run changeset:publish
57+ commit : ' ci: Version Packages'
58+ title : ' ci: Version Packages'
5059 env :
5160 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
52- - name : Publish Packages
61+ NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
62+ - name : Auto-merge Changesets PR
63+ if : steps.changesets.outputs.hasChangesets == 'true' && steps.major.outputs.found == 'false'
5364 run : |
54- npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN} "
55- pnpm run changeset:publish
65+ gh pr merge --squash "$PR_NUMBER "
66+ gh api --method POST /repos/$REPO/dispatches -f 'event_type=release'
5667 env :
57- NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
68+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
69+ REPO : ${{ github.repository }}
70+ PR_NUMBER : ${{ steps.changesets.outputs.pullRequestNumber }}
5871 - name : Upload coverage to Codecov
59726073 with :
0 commit comments