From c5c6d5f5d612d3f9046fe34e1eb52b7441517b12 Mon Sep 17 00:00:00 2001 From: Jorge Soares Date: Wed, 29 Jul 2026 12:45:34 +0100 Subject: [PATCH] docs: update docs deployment --- .github/workflows/deploy-api-docs.yml | 18 ++++++------------ .github/workflows/deploy-web.yml | 7 +++++++ .github/workflows/pr-checks.yml | 25 ++++++++++++------------- .github/workflows/release-duc2pdf.yml | 6 ++++++ apps/web/app/(home)/page.tsx | 1 + apps/web/next.config.mjs | 3 +++ packages/ducpy/docs/conf.py | 2 +- scripts/build-all-api-docs.py | 6 +----- scripts/gen-sql-docs.py | 6 +++--- 9 files changed, 40 insertions(+), 34 deletions(-) diff --git a/.github/workflows/deploy-api-docs.yml b/.github/workflows/deploy-api-docs.yml index dd6f1bc5..9ea40af0 100644 --- a/.github/workflows/deploy-api-docs.yml +++ b/.github/workflows/deploy-api-docs.yml @@ -21,15 +21,15 @@ on: branches: - main paths: + - 'packages/ducrs/Cargo.toml' - 'packages/ducpy/docs/**' - - 'packages/ducpy/src/ducpy/**' - - 'packages/ducjs/src/**' - - 'packages/ducrs/src/**' - - 'packages/ducpdf/src/**' - - 'packages/ducsvg/src/**' + - 'packages/ducjs/typedoc.json' + - 'packages/ducpdf/typedoc.json' + - 'packages/ducsvg/typedoc.json' - 'apps/web/content/docs/**' - 'schema/**' - 'scripts/gen-sql-docs.py' + - 'scripts/build-all-api-docs.py' - '**.md' - '**.mdx' @@ -68,13 +68,7 @@ jobs: sudo rm -rf /tmp/sq* /tmp/go-graphviz* /tmp/wazero* - name: Build SQL HTML Documentation - run: | - TAG_VERSION=$(git tag -l 'duc.sql@*' -l 'ducsql@*' -l 'duc@*' | sed -E 's/(duc\.sql@|ducsql@|duc@)//' | sort -V | tail -n1) - if [ -z "$TAG_VERSION" ]; then - TAG_VERSION=$(node -p "require('./package.json').version") - fi - echo "Resolved SQL version: $TAG_VERSION" - SQL_DOCS_VERSION="$TAG_VERSION" uv run python3 scripts/gen-sql-docs.py + run: uv run python3 scripts/gen-sql-docs.py - name: Install Python dependencies with uv run: uv sync --frozen || uv sync diff --git a/.github/workflows/deploy-web.yml b/.github/workflows/deploy-web.yml index a7fb1701..2aa35973 100644 --- a/.github/workflows/deploy-web.yml +++ b/.github/workflows/deploy-web.yml @@ -6,6 +6,13 @@ on: workflow_dispatch: repository_dispatch: types: [trigger-web-deployment] + push: + branches: + - main + paths: + - 'apps/web/**' + - 'package.json' + - 'bun.lock' jobs: check-deploy-conditions: diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index af918af7..67d2f60e 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -286,7 +286,6 @@ jobs: test-docs: name: API Docs Staging Dry-Run needs: release-check - if: needs.release-check.outputs.any_release == 'true' uses: ./.github/workflows/deploy-api-docs.yml with: dry_run: true @@ -405,22 +404,22 @@ jobs: echo "### ❌ Package tests failed" >> "$GITHUB_STEP_SUMMARY" FAILED="true" fi - - if [ "$DOCS_RESULT" = "success" ]; then - echo "### ✅ API Documentation staging dry-run passed" >> "$GITHUB_STEP_SUMMARY" - elif [ "$DOCS_RESULT" = "skipped" ]; then - echo "### â­ī¸ API Documentation dry-run was skipped" >> "$GITHUB_STEP_SUMMARY" - elif [ "$DOCS_RESULT" = "cancelled" ]; then - echo "### 🛑 API Documentation dry-run cancelled (interrupted by workflow failure)" >> "$GITHUB_STEP_SUMMARY" - FAILED="true" - else - echo "### ❌ API Documentation staging dry-run failed" >> "$GITHUB_STEP_SUMMARY" - FAILED="true" - fi else echo "### â„šī¸ No pending package releases — package tests skipped" >> "$GITHUB_STEP_SUMMARY" fi + if [ "$DOCS_RESULT" = "success" ]; then + echo "### ✅ API Documentation staging dry-run passed" >> "$GITHUB_STEP_SUMMARY" + elif [ "$DOCS_RESULT" = "skipped" ]; then + echo "### â­ī¸ API Documentation dry-run was skipped" >> "$GITHUB_STEP_SUMMARY" + elif [ "$DOCS_RESULT" = "cancelled" ]; then + echo "### 🛑 API Documentation dry-run cancelled (interrupted by workflow failure)" >> "$GITHUB_STEP_SUMMARY" + FAILED="true" + else + echo "### ❌ API Documentation staging dry-run failed" >> "$GITHUB_STEP_SUMMARY" + FAILED="true" + fi + if [ "$FAILED" = "true" ]; then exit 1 fi diff --git a/.github/workflows/release-duc2pdf.yml b/.github/workflows/release-duc2pdf.yml index df0793c5..b54ada94 100644 --- a/.github/workflows/release-duc2pdf.yml +++ b/.github/workflows/release-duc2pdf.yml @@ -56,3 +56,9 @@ jobs: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} working-directory: ./packages/ducpdf/src/duc2pdf run: npx semantic-release ${{ steps.setup-release-environment.outputs.release-mode }} + + - name: Deploy API documentation + uses: peter-evans/repository-dispatch@v3 + with: + event-type: trigger-api-docs-deployment + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/apps/web/app/(home)/page.tsx b/apps/web/app/(home)/page.tsx index b05823d2..cb7cb58f 100644 --- a/apps/web/app/(home)/page.tsx +++ b/apps/web/app/(home)/page.tsx @@ -21,6 +21,7 @@ export default function HomePage() { width={1400} height={788} priority + unoptimized className="mx-auto w-full md:w-auto rounded-xl object-contain md:h-[500px]" /> diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index cc7c21c7..fa155983 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -9,6 +9,9 @@ const config = { turbopack: { root: path.resolve(import.meta.dirname, '../../'), }, + images: { + unoptimized: true, + }, async rewrites() { return [ { diff --git a/packages/ducpy/docs/conf.py b/packages/ducpy/docs/conf.py index b687d5da..b7e16bd0 100644 --- a/packages/ducpy/docs/conf.py +++ b/packages/ducpy/docs/conf.py @@ -14,7 +14,7 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = [ - "sphinx_llm", + "sphinx_llm.txt", ] templates_path = ['_templates'] diff --git a/scripts/build-all-api-docs.py b/scripts/build-all-api-docs.py index 1e283022..c8913703 100644 --- a/scripts/build-all-api-docs.py +++ b/scripts/build-all-api-docs.py @@ -45,11 +45,7 @@ def main(): # Step 0. SQL API Docs (sq inspect -> /reference/sql/) print("\n--> Step 0: SQL API Docs (gen-sql-docs.py)") gen_sql_script = repo_root / "scripts" / "gen-sql-docs.py" - sql_ver = get_latest_tag_version(repo_root, "duc.sql@*") or get_latest_tag_version(repo_root, "duc@*") or "1.0.0" - print(f" Resolved SQL version: {sql_ver}") - env = os.environ.copy() - env["SQL_DOCS_VERSION"] = sql_ver - subprocess.run([sys.executable, str(gen_sql_script)], cwd=repo_root, env=env, check=True) + subprocess.run([sys.executable, str(gen_sql_script)], cwd=repo_root, check=True) # Step 1. Python API Docs (Sphinx -> /reference/python/) print("\n--> Step 1: Python API Docs (Sphinx)") diff --git a/scripts/gen-sql-docs.py b/scripts/gen-sql-docs.py index 6ecc72f8..948cd49f 100644 --- a/scripts/gen-sql-docs.py +++ b/scripts/gen-sql-docs.py @@ -81,11 +81,11 @@ def main(): check=True ) - version = os.environ.get("SQL_DOCS_VERSION", "").strip() + version = pragma_version_str if len(sys.argv) > 1 and sys.argv[1]: version = sys.argv[1].strip() - if not version and pragma_version_str: - version = pragma_version_str + elif not version and os.environ.get("SQL_DOCS_VERSION", "").strip(): + version = os.environ.get("SQL_DOCS_VERSION").strip() if version and out_file.exists(): content = out_file.read_text(encoding="utf-8")