diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 16950e7..3e3b249 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -3,19 +3,66 @@ name: Release Please on: push: branches: - - main - master + workflow_dispatch: permissions: contents: write - issues: write pull-requests: write + issues: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false jobs: release-please: + name: Prepare Release runs-on: ubuntu-latest + timeout-minutes: 15 + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: - - uses: googleapis/release-please-action@v4 + - name: Run release-please + id: release + uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0 with: + token: ${{ secrets.GITHUB_TOKEN }} config-file: release-please-config.json manifest-file: .release-please-manifest.json + + publish-npm: + name: Publish to npm + needs: release-please + if: ${{ needs.release-please.outputs.release_created == 'true' }} + runs-on: ubuntu-latest + timeout-minutes: 20 + permissions: + contents: read + id-token: write + + steps: + - name: Checkout release tag + uses: actions/checkout@v4 + with: + ref: ${{ needs.release-please.outputs.tag_name }} + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + registry-url: https://registry.npmjs.org + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build package + run: bun run build + + - name: Publish package + run: npx --yes npm@11.10.0 publish --access public --provenance