From 7ef375104b26d8f0f3580ba0424c63da8a893966 Mon Sep 17 00:00:00 2001 From: Lukas Klingsbo Date: Mon, 31 Aug 2026 15:54:30 +0200 Subject: [PATCH] ci: release postgrest-typegen only on manual dispatch Splits postgrest-typegen out of the automatic release-please run into its own config, manifest and workflow-dispatch-only workflow, so merging a typegen change no longer opens a release pull request or publishes to npm on its own. --- .../workflows/release-postgrest-typegen.yml | 75 +++++++++++++++++++ .github/workflows/release.yml | 49 +----------- .release-please-manifest.json | 3 +- ...ase-please-manifest.postgrest-typegen.json | 3 + packages/postgrest-typegen/README.md | 4 + release-please-config.json | 6 +- release-please-config.postgrest-typegen.json | 12 +++ 7 files changed, 97 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/release-postgrest-typegen.yml create mode 100644 .release-please-manifest.postgrest-typegen.json create mode 100644 release-please-config.postgrest-typegen.json diff --git a/.github/workflows/release-postgrest-typegen.yml b/.github/workflows/release-postgrest-typegen.yml new file mode 100644 index 0000000..b7b7a3a --- /dev/null +++ b/.github/workflows/release-postgrest-typegen.yml @@ -0,0 +1,75 @@ +name: Release postgrest-typegen + +on: + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs['packages/postgrest-typegen--release_created'] }} + tag_name: ${{ steps.release.outputs['packages/postgrest-typegen--tag_name'] }} + steps: + - name: Generate token + id: app-token + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 + with: + client-id: ${{ vars.GH_APP_CLIENT_ID }} + private-key: ${{ secrets.PRIVATE_KEY }} + + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + id: release + with: + config-file: release-please-config.postgrest-typegen.json + manifest-file: .release-please-manifest.postgrest-typegen.json + target-branch: ${{ github.ref_name }} + token: ${{ steps.app-token.outputs.token }} + + publish-postgrest-typegen: + needs: release-please + if: needs.release-please.outputs.release_created == 'true' + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + defaults: + run: + working-directory: packages/postgrest-typegen + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + ref: ${{ needs.release-please.outputs.tag_name }} + + - name: Install bun + run: curl -fsSL https://bun.sh/install | bash + + - name: Add bun to PATH + run: echo "$HOME/.bun/bin" >> "$GITHUB_PATH" + + - name: Setup Node.js + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: "22" + registry-url: "https://registry.npmjs.org" + + - name: Install latest npm for OIDC trusted publishing + run: | + mkdir -p "$HOME/.npm-global" + npm config set prefix "$HOME/.npm-global" + echo "$HOME/.npm-global/bin" >> "$GITHUB_PATH" + npm install -g npm@latest + npm --version + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build + run: bun run build + + - name: Publish to npm + run: npm publish --access public --provenance diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 121df5a..dddd8b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,6 @@ name: Release +# packages/postgrest-typegen is released on demand, see release-postgrest-typegen.yml on: workflow_run: workflows: ["Validate Capabilities"] @@ -21,9 +22,6 @@ jobs: github.event.workflow_run.event == 'push' && github.event.workflow_run.head_repository.full_name == github.repository) runs-on: ubuntu-latest - outputs: - postgrest_typegen_release_created: ${{ steps.release.outputs['packages/postgrest-typegen--release_created'] }} - postgrest_typegen_tag_name: ${{ steps.release.outputs['packages/postgrest-typegen--tag_name'] }} steps: - name: Generate token id: app-token @@ -37,48 +35,3 @@ jobs: with: target-branch: ${{ github.event_name == 'workflow_dispatch' && github.ref_name || github.event.workflow_run.head_branch }} token: ${{ steps.app-token.outputs.token }} - - publish-postgrest-typegen: - needs: release-please - if: needs.release-please.outputs.postgrest_typegen_release_created == 'true' - runs-on: ubuntu-latest - permissions: - contents: read - id-token: write - defaults: - run: - working-directory: packages/postgrest-typegen - steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - ref: ${{ needs.release-please.outputs.postgrest_typegen_tag_name }} - - - name: Install bun - run: curl -fsSL https://bun.sh/install | bash - - - name: Add bun to PATH - run: echo "$HOME/.bun/bin" >> "$GITHUB_PATH" - - - name: Setup Node.js - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: "22" - registry-url: "https://registry.npmjs.org" - - - name: Install latest npm for OIDC trusted publishing - run: | - mkdir -p "$HOME/.npm-global" - npm config set prefix "$HOME/.npm-global" - echo "$HOME/.npm-global/bin" >> "$GITHUB_PATH" - npm install -g npm@latest - npm --version - - - name: Install dependencies - run: bun install --frozen-lockfile - - - name: Build - run: bun run build - - - name: Publish to npm - run: npm publish --access public --provenance diff --git a/.release-please-manifest.json b/.release-please-manifest.json index fe4bd60..40396db 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,3 @@ { - "packages/capability-matrix": "1.6.0", - "packages/postgrest-typegen": "0.2.0" + "packages/capability-matrix": "1.6.0" } diff --git a/.release-please-manifest.postgrest-typegen.json b/.release-please-manifest.postgrest-typegen.json new file mode 100644 index 0000000..16185fb --- /dev/null +++ b/.release-please-manifest.postgrest-typegen.json @@ -0,0 +1,3 @@ +{ + "packages/postgrest-typegen": "0.2.0" +} diff --git a/packages/postgrest-typegen/README.md b/packages/postgrest-typegen/README.md index 3a38faa..21c9293 100644 --- a/packages/postgrest-typegen/README.md +++ b/packages/postgrest-typegen/README.md @@ -128,6 +128,10 @@ Not yet published; consumed in-repo for now (`packages/postgrest-typegen`). npm install pg ``` +## Releasing + +Unlike the rest of this repo, merging a change here does not open a release pull request on its own. Releases are cut on demand: run the `Release postgrest-typegen` workflow from the Actions tab, which runs release-please against `release-please-config.postgrest-typegen.json` and opens (or updates) the release pull request for this package. Merging that pull request tags the release and publishes to npm. + ## License MIT diff --git a/release-please-config.json b/release-please-config.json index 9752644..6168b8d 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,15 +1,11 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "separate-pull-requests": true, "packages": { "packages/capability-matrix": { "release-type": "node", "package-name": "@supabase/capability-matrix-validator", "component": "capability-matrix" - }, - "packages/postgrest-typegen": { - "release-type": "node", - "package-name": "@supabase/postgrest-typegen", - "bump-minor-pre-major": true } } } diff --git a/release-please-config.postgrest-typegen.json b/release-please-config.postgrest-typegen.json new file mode 100644 index 0000000..05924e1 --- /dev/null +++ b/release-please-config.postgrest-typegen.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "separate-pull-requests": true, + "packages": { + "packages/postgrest-typegen": { + "release-type": "node", + "package-name": "@supabase/postgrest-typegen", + "component": "postgrest-typegen", + "bump-minor-pre-major": true + } + } +}