Files
Katerina Skroumpelou d5c8f2cd3f chore: @supabase/ssr version management (#44705)
* Add `@supabase/ssr` to catalog
* Use `catalog:` version of `@supabase/ssr` across repo
* Add workflow to update `@supabase/ssr`
* Switch runners for package and docs updates to `ubuntu-latest` (free,
lighter)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Centralized `@supabase/ssr` versioning across the workspace via the
package catalog.
* Updated CI workflow runners to a more consistent execution
environment.
* Added an automated workflow to streamline updating the `@supabase/ssr`
package and refreshing dependency lockfiles.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-15 13:55:19 +03:00

122 lines
4.8 KiB
YAML

name: Update JS Libraries
on:
workflow_dispatch:
inputs:
version:
description: 'Version to update to'
required: true
type: string
source:
description: 'Source of the update'
required: false
type: string
default: 'manual'
permissions:
pull-requests: write
contents: write
jobs:
update-js-libs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
ref: master
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
name: Install pnpm
with:
run_install: false
- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- name: Update @supabase/*-js packages in pnpm-workspace.yaml
env:
VERSION: ${{ github.event.inputs.version }}
run: |
# Update @supabase/supabase-js
sed -i "s|'@supabase/supabase-js': .*|'@supabase/supabase-js': ${VERSION}|" pnpm-workspace.yaml
# Update @supabase/auth-js
sed -i "s|'@supabase/auth-js': .*|'@supabase/auth-js': ${VERSION}|" pnpm-workspace.yaml
# Update @supabase/realtime-js
sed -i "s|'@supabase/realtime-js': .*|'@supabase/realtime-js': ${VERSION}|" pnpm-workspace.yaml
# Update @supabase/postgrest-js
sed -i "s|'@supabase/postgrest-js': .*|'@supabase/postgrest-js': ${VERSION}|" pnpm-workspace.yaml
echo "Updated pnpm-workspace.yaml:"
cat pnpm-workspace.yaml
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Fetch release notes
env:
VERSION: ${{ github.event.inputs.version }}
GH_TOKEN: ${{ github.token }}
run: |
CURRENT_FULL=$(git show HEAD:pnpm-workspace.yaml | grep -oP "(?<='@supabase/supabase-js': )[\d]+\.[\d]+\.[\d]+(-[\w.]+)?")
CURRENT_BASE=$(echo "$CURRENT_FULL" | grep -oP '[\d]+\.[\d]+\.[\d]+')
[[ "$CURRENT_FULL" == *"-"* ]] && INCLUDE_CURRENT=true || INCLUDE_CURRENT=false
[[ "$VERSION" == *"-"* ]] && STABLE_ONLY=false || STABLE_ONLY=true
RELEASES=$(gh api "repos/supabase/supabase-js/releases?per_page=100")
RELEASE_NOTES=$(echo "$RELEASES" | jq -r \
--arg current "v${CURRENT_BASE}" \
--arg new "v${VERSION}" \
--argjson stable_only "$STABLE_ONLY" \
--argjson include_current "$INCLUDE_CURRENT" \
'[.[] | select(.draft == false) | select(if $stable_only then .prerelease == false else true end)] |
(map(.tag_name) | index($new)) as $start |
(map(.tag_name) | index($current)) as $end |
($end | if . != null and $include_current then . + 1 else . end) as $end_adj |
if $start == null then ["Target version not found in last 100 releases."]
elif $end_adj != null and $start >= $end_adj then ["Downgrade — no release notes available."]
else [.[$start:$end_adj][] | "## " + .tag_name + "\n\n" + (.body // "No release notes.")]
end | .[]')
echo "RELEASE_NOTES<<EOF" >> "$GITHUB_ENV"
echo "$RELEASE_NOTES" >> "$GITHUB_ENV"
echo "EOF" >> "$GITHUB_ENV"
- name: Generate token
id: app-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
with:
app-id: ${{ secrets.GH_AUTOFIX_APP_ID }}
private-key: ${{ secrets.GH_AUTOFIX_PRIVATE_KEY }}
- name: Create pull request
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
with:
token: ${{ steps.app-token.outputs.token }}
commit-message: 'feat: update @supabase/*-js libraries to v${{ github.event.inputs.version }}'
title: 'feat: update @supabase/*-js libraries to v${{ github.event.inputs.version }}'
body: |
This PR updates @supabase/*-js libraries to version ${{ github.event.inputs.version }}.
**Source**: ${{ github.event.inputs.source }}
**Changes**:
- Updated @supabase/supabase-js to ${{ github.event.inputs.version }}
- Updated @supabase/auth-js to ${{ github.event.inputs.version }}
- Updated @supabase/realtime-js to ${{ github.event.inputs.version }}
- Updated @supabase/postgest-js to ${{ github.event.inputs.version }}
- Refreshed pnpm-lock.yaml
---
## Release Notes
${{ env.RELEASE_NOTES }}
This PR was created automatically.
branch: 'gha/auto-update-js-libs-v${{ github.event.inputs.version }}'
base: 'master'