1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- name: "Build and Publish on NPM"
- on:
- push:
- branches:
- - main
- env:
- PR_TITLE: "Create Release"
- COMMIT_MSG: "chore: create new release"
- concurrency: ${{ github.workflow }}-${{ github.ref }}
- jobs:
- publish:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [22.x]
- permissions:
- contents: write # For pushing Git tags and creating releases
- pull-requests: write # For creating the changesets relese PR
- id-token: write # The OIDC ID token is used for authentication with JSR
- env:
- CI: "true"
- STORE_PATH: ""
- PNPM_VERSION: 9
- RETENTION_DAYS: 2
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Node.js v${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- - name: Setup pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- run_install: false
- - name: Get pnpm store directory
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- - name: Setup pnpm cache
- uses: actions/cache@v4
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
- - name: Install dependencies
- run: pnpm i
- - name: Build package
- run: pnpm build-all
- - name: Create artifact
- uses: actions/upload-artifact@v4
- with:
- name: dist
- path: dist/
- retention-days: ${{ env.RETENTION_DAYS }}
- - name: Create release or publish package
- uses: changesets/action@v1
- id: changesets
- with:
- publish: npm run publish-package
- commit: ${{ env.COMMIT_MSG }}
- title: ${{ env.PR_TITLE }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|