Skip to content

Commit

Permalink
Merge pull request #2555 from galacean/chore/typedoc-action
Browse files Browse the repository at this point in the history
feat: add github action to generate typedoc json automatically
  • Loading branch information
MrKou47 authored Feb 13, 2025
2 parents 24d2589 + 86f27b1 commit 78f7415
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 7 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/typedoc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# This is a basic workflow to help you get started with Actions

name: Generate TypeDoc

on:
push:
tags:
- "v*"
workflow_dispatch:

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout Engine repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: true

# after pnpm
- name: Use Node.js LTS
uses: actions/setup-node@v4
with:
node-version: '>=22.6.0'
registry-url: https://registry.npmjs.org/
cache: pnpm

- name: Build Engine
run: pnpm b:all

- name: Ensure TypeDoc Directory Exists
run: mkdir -p ${{ github.workspace }}/galacean-typedoc/dist

- name: Create package.json for galacean-typedoc
run: |
VERSION=$(jq -r '.version' ${{ github.workspace }}/packages/galacean/package.json)
echo "{\"name\": \"galacean-typedoc\", \"version\": \"$VERSION\"}" > ${{ github.workspace }}/galacean-typedoc/package.json
cat ${{ github.workspace }}/galacean-typedoc/package.json
- name: Set execute permission for typedoc.sh
run: chmod +x ./scripts/typedoc.sh

- name: Generate TypeDoc Json
run: ./scripts/typedoc.sh

- name: Upload Typedoc JSON to CDN
uses: galacean/publish@main
if: success() || failure()
with:
publish: false
packages: |
galacean-typedoc
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
NPM_CONFIG_PROVENANCE: true
OASISBE_UPLOAD_URL: https://oasisbe.alipay.com/api/file/no-auth/crypto/upload
OASISBE_REQUEST_HEADER: ${{secrets.OASISBE_REQUEST_HEADER}}
OASISBE_PUBLIC_KEY: ${{secrets.OASISBE_PUBLIC_KEY}}
13 changes: 6 additions & 7 deletions scripts/typedoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,19 @@ set -euo pipefail
# generate declaration files via typedoc

ENGINE_PATH="$(pwd)"
TYPEDOC="typedoc@0.23.28"

# Set default output directory if not provided
OUTPUT_DIR=${1:-./api}

# Validate required environment variable
if [ -z "${TYPEDOC:-}" ]; then
echo "Error: TYPEDOC environment variable is not set" >&2
exit 1
fi
for directory in ${ENGINE_PATH}/packages/*
do
if [ -d $directory ]; then
bn=`basename $directory`;
echo "typedoc compiling $directory"
npx $TYPEDOC --version
npx $TYPEDOC --json api/$bn.json --tsconfig $directory/tsconfig.json $directory/src/index.ts;
SUCCESS+=("api/$bn.json")
npx $TYPEDOC --json ${OUTPUT_DIR}/$bn.json --tsconfig $directory/tsconfig.json $directory/src/index.ts;
SUCCESS+=("${OUTPUT_DIR}/$bn.json")
fi
done

Expand Down

0 comments on commit 78f7415

Please sign in to comment.