name: Publish to npm on: push: branches: [main] workflow_dispatch: jobs: publish: runs-on: ubuntu-latest permissions: contents: write id-token: write issues: write pull-requests: write concurrency: group: publish-${{ github.ref }} cancel-in-progress: false steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install --frozen-lockfile - name: Run tests run: bun test - name: Setup Node.js for release uses: actions/setup-node@v4 with: # npm trusted publishing requires Node 22.14.0+. node-version: "24" - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx semantic-release