mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 21:05:06 +03:00
119 lines
4.2 KiB
YAML
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
|
|
});
|