release.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: Release
  2. on:
  3. push:
  4. branches: [master]
  5. concurrency: ${{ github.workflow }}-${{ github.ref }}
  6. jobs:
  7. release:
  8. name: Release
  9. runs-on: ubuntu-latest
  10. env:
  11. # Enables Turborepo remote caching.
  12. TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
  13. TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
  14. steps:
  15. - name: Checkout
  16. id: checkout
  17. uses: actions/checkout@v3
  18. - name: Install pnpm
  19. id: install-pnpm
  20. uses: pnpm/action-setup@v4
  21. with:
  22. version: 10.8.1
  23. run_install: false
  24. - name: Install Node.js
  25. id: install-node
  26. uses: actions/setup-node@v4
  27. with:
  28. node-version: 22
  29. cache: 'pnpm'
  30. - name: Get pnpm store directory
  31. id: pnpm-store
  32. shell: bash
  33. run: |
  34. echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
  35. - name: Setup pnpm cache
  36. id: pnpm-cache
  37. uses: actions/cache@v3
  38. with:
  39. path: ${{ steps.pnpm-store.outputs.STORE_PATH }}
  40. key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
  41. restore-keys: |
  42. ${{ runner.os }}-pnpm-store-
  43. - name: Install dependencies
  44. id: install-deps
  45. run: pnpm install --frozen-lockfile
  46. - name: Create release pull request OR build, test, and publish to npm
  47. id: changesets
  48. uses: changesets/action@v1
  49. with:
  50. publish: pnpm run release
  51. env:
  52. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  53. NPM_TOKEN: ${{ secrets.NPM_TOKEN }}