@@ -2,8 +2,15 @@ name: Version & Publish Packages
22
33on :
44 workflow_dispatch :
5- branches :
6- - main
5+ inputs :
6+ release_type :
7+ description : ' Choose which release pipeline to run'
8+ required : false
9+ default : regular
10+ type : choice
11+ options :
12+ - regular
13+ - canary
714 push :
815 branches :
916 - main
1421jobs :
1522 build-and-publish-to-npm :
1623 runs-on : ubuntu-latest
24+ env :
25+ RELEASE_TYPE : ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.release_type || 'regular' }}
1726 steps :
1827 - name : Checkout
1928 uses : actions/checkout@v4
@@ -36,19 +45,33 @@ jobs:
3645 NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
3746
3847 - name : Create Changesets Pull Request or Trigger an npm Publish
48+ if : env.RELEASE_TYPE == 'regular'
3949 id : changesets
4050 uses : changesets/action@v1
4151 env :
4252 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
4353
4454 - name : Choose final step
55+ if : env.RELEASE_TYPE == 'regular'
4556 id : build-step-decider
4657 run : |
4758 echo "step-name=${{ steps.changesets.outputs.hasChangesets == 'false' && 'publish-packages' || 'build' }}" >> "$GITHUB_OUTPUT"
4859
4960 - name : Run final step
61+ if : env.RELEASE_TYPE == 'regular'
5062 run : pnpm ${{ steps.build-step-decider.outputs.step-name }}
5163 env :
5264 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5365 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
5466 NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
67+
68+ - name : Publish Canary Snapshot
69+ if : env.RELEASE_TYPE == 'canary'
70+ run : |
71+ pnpm changeset version --snapshot canary
72+ pnpm build
73+ pnpm changeset publish --tag canary
74+ env :
75+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
76+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
77+ NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
0 commit comments