release.yml
1 name: 🚀 Release 2 3 on: 4 push: 5 branches: 6 - main 7 workflow_dispatch: 8 9 concurrency: ${{ github.workflow }}-${{ github.ref }} 10 11 env: 12 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 13 NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 14 15 jobs: 16 release: 17 name: 🚀 Release 18 strategy: 19 matrix: 20 os: [ubuntu-latest] 21 node-version: [lts/*] 22 pnpm-version: [latest] 23 runs-on: ${{ matrix.os }} 24 steps: 25 - name: ⬇️ Checkout 26 id: checkout 27 uses: actions/checkout@v2.3.3 28 with: 29 token: ${{ env.GITHUB_TOKEN }} 30 fetch-depth: 0 31 32 - name: 🟢 Setup node 33 id: setup-node 34 uses: actions/setup-node@v2 35 with: 36 node-version: ${{ matrix.node-version }} 37 38 - name: 🥡 Setup pnpm 39 id: setup-pnpm 40 uses: pnpm/action-setup@v2.1.0 41 with: 42 version: ${{ matrix.pnpm-version }} 43 run_install: false 44 45 - name: 🎈 Get pnpm store directory 46 id: get-pnpm-cache-dir 47 run: | 48 echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" 49 50 - name: 🔆 Cache pnpm modules 51 uses: actions/cache@v3 52 id: pnpm-cache 53 with: 54 path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }} 55 key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 56 restore-keys: | 57 ${{ runner.os }}-pnpm-store- 58 59 - name: 🧩 Install Dependencies 60 id: install-dependencies 61 run: pnpm install 62 63 - name: 🏗️ Build 64 id: build-all 65 run: | 66 pnpm build 67 68 - name: 📣 Create Release Pull Request or Publish to npm 69 id: changesets 70 uses: changesets/action@v1 71 with: 72 title: "chore(release): version packages 🦋" 73 publish: pnpm publish:packages 74 version: pnpm version:packages 75 commit: "chore(release): version packages 🦋 [skip ci]" 76 env: 77 GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} 78 NPM_TOKEN: ${{ env.NPM_TOKEN }}