Files
supabase/.github/workflows/docs-js-libs-update.yml

119 lines
4.2 KiB
YAML

name: Update JS Client Libraries Docs
on:
workflow_dispatch:
inputs:
version:
description: 'Version that was released (e.g., patch, minor, major, or v2.1.0)'
required: true
type: string
source:
description: 'Source of the documentation update'
required: false
type: string
default: 'manual'
permissions:
pull-requests: write
contents: write
jobs:
update-docs:
runs-on: blacksmith-4vcpu-ubuntu-2404
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: Install deps
run: pnpm install --frozen-lockfile
- name: Regenerate JS client libraries tsdoc files
working-directory: apps/docs/spec
run: |
echo "Regenerating tsdoc files for JS client libraries..."
echo "Source: ${{ github.event.inputs.source }}"
echo "Version: ${{ github.event.inputs.version }}"
make
- name: Generate new typespec snapshot
working-directory: apps/docs
run: |
echo "Generating new typespec snapshot for review..."
npx vitest run --update ./features/docs/Reference.typeSpec.test.ts
- name: Validate reference sync
id: validate
working-directory: apps/docs
run: |
echo "Running reference documentation validation..."
pnpm run validate:references:fix || echo "validation_failed=true" >> $GITHUB_OUTPUT
continue-on-error: true
- name: Generate PR comment
id: comment
if: always()
working-directory: apps/docs
run: |
if [ -f sync-report.json ]; then
echo "Generating PR comment with validation results..."
COMMENT=$(tsx scripts/generate-yaml-suggestions.ts)
echo "$COMMENT" > /tmp/pr-comment.md
echo "comment_generated=true" >> $GITHUB_OUTPUT
else
echo "No validation report found, skipping comment generation"
echo "comment_generated=false" >> $GITHUB_OUTPUT
fi
- name: Create pull request
id: create-pr
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: 'docs: update js client libraries (${{ github.event.inputs.version }})'
title: 'docs: update js client libraries (${{ github.event.inputs.version }})'
body: |
Updates JS client libraries documentation following stable release.
Ran `make` in apps/docs/spec to regenerate tsdoc files.
**Details:**
- **Version:** `${{ github.event.inputs.version }}`
- **Source:** `${{ github.event.inputs.source }}`
- **Changes:** Regenerated tsdoc files from latest spec files
🤖 Auto-generated from supabase-js-libs stable release.
branch: 'gha/update-js-libs-docs-${{ github.run_number }}'
base: 'master'
- name: Add validation comment to PR
if: steps.comment.outputs.comment_generated == 'true' && steps.create-pr.outputs.pull-request-number != ''
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const comment = fs.readFileSync('/tmp/pr-comment.md', 'utf8');
// Extract just the comment content
const match = comment.match(/<!-- validation-comment -->([\s\S]*?)<!-- \/validation-comment -->/);
const commentBody = match ? match[1].trim() : comment;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ steps.create-pr.outputs.pull-request-number }},
body: commentBody
});