From d0d45baedba18bc272fc8bdbe5edeb10414d15e9 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 12:28:45 -0400 Subject: [PATCH 1/7] chore: move to wrangler for deployments --- .github/workflows/docs.yml | 35 ------------- .vercelignore | 2 - package.json | 3 +- scripts/deployments/beta/main.sh | 52 +++++++++++++++++++ scripts/deployments/beta/wrangler.jsonc | 21 ++++++++ .../site/main.sh} | 0 scripts/deployments/site/wrangler.jsonc | 21 ++++++++ scripts/vercel-build.sh | 26 ---------- scripts/vercel-prepare.sh | 36 ------------- vercel.json | 3 -- wrangler.jsonc | 21 ++++++++ 11 files changed, 117 insertions(+), 103 deletions(-) delete mode 100644 .github/workflows/docs.yml delete mode 100644 .vercelignore create mode 100644 scripts/deployments/beta/main.sh create mode 100644 scripts/deployments/beta/wrangler.jsonc rename scripts/{vercel-docs-build.sh => deployments/site/main.sh} (100%) mode change 100755 => 100644 create mode 100644 scripts/deployments/site/wrangler.jsonc delete mode 100755 scripts/vercel-build.sh delete mode 100755 scripts/vercel-prepare.sh delete mode 100644 vercel.json create mode 100644 wrangler.jsonc diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 0b4c9f74..00000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Documentation Site - -on: - push: - branches: [main] - pull_request: - branches: [main] - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Build docs site - runs-on: ubuntu-latest - steps: - - name: Setup environment - uses: nodejs/web-team/actions/setup-environment@9f3c83af227d721768d9dbb63009a47ed4f4282f - with: - use-version-file: true - pnpm: true - - - name: Build site - run: node --run docs:build - - - name: Upload site artifact - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: docs-site - path: www/out diff --git a/.vercelignore b/.vercelignore deleted file mode 100644 index 3627399c..00000000 --- a/.vercelignore +++ /dev/null @@ -1,2 +0,0 @@ -# Ignored the cloned `node` folder -/node diff --git a/package.json b/package.json index e5a2c0fb..88b95e0f 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "prepare": "husky || exit 0", "run": "node packages/cli/bin/cli.mjs", "watch": "node --watch packages/cli/bin/cli.mjs", - "docs:build": "bash scripts/vercel-docs-build.sh", + "build:site": "bash scripts/deployments/site/main.sh", + "build:beta": "bash scripts/deployments/beta/main.sh", "changeset": "changeset", "changeset:version": "changeset version", "release": "changeset publish" diff --git a/scripts/deployments/beta/main.sh b/scripts/deployments/beta/main.sh new file mode 100644 index 00000000..1726d2ec --- /dev/null +++ b/scripts/deployments/beta/main.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +set -euo pipefail + +readonly NODE_REPO="https://github.com/nodejs/node.git" +readonly SRC_DIR="node" +readonly OUT_DIR="out" + +cleanup() { rm -rf "$SRC_DIR"; } +trap cleanup EXIT + +tags=$(git ls-remote --tags --refs --sort='-v:refname' "$NODE_REPO" 'v*') +LATEST_TAG=$(awk -F/ '$NF !~ /-/ { print $NF; exit }' <<<"$tags") + +if [[ -z $LATEST_TAG ]]; then + echo "Could not determine the latest nodejs/node release tag" >&2 + exit 1 +fi + +echo "Building docs for nodejs/node $LATEST_TAG" + +clone_node_docs() { + rm -rf "$SRC_DIR" + git clone --depth 1 --no-tags --branch "$LATEST_TAG" \ + --filter=blob:none --sparse "$NODE_REPO" "$SRC_DIR" + git -C "$SRC_DIR" sparse-checkout set doc lib +} + +clone_node_docs & +clone_pid=$! + +pnpm install --frozen-lockfile + +wait "$clone_pid" + +mkdir -p "$OUT_DIR" + +node packages/cli/bin/cli.mjs generate \ + -t orama-db \ + -t legacy-json \ + -t llms-txt \ + -t html \ + -i "./$SRC_DIR/doc/api/*.md" \ + --ignore "./$SRC_DIR/doc/api/quic.md" \ + -o "./$OUT_DIR" \ + -c "./$SRC_DIR/CHANGELOG.md" \ + -v "$LATEST_TAG" \ + --type-map "./$SRC_DIR/doc/type-map.json" \ + --index "./$SRC_DIR/doc/api/index.md" \ + --config-file "./beta/doc-kit.config.mjs" \ + --log-level debug + +cp "$SRC_DIR"/doc/api/*.md "$OUT_DIR/" \ No newline at end of file diff --git a/scripts/deployments/beta/wrangler.jsonc b/scripts/deployments/beta/wrangler.jsonc new file mode 100644 index 00000000..8092b5c0 --- /dev/null +++ b/scripts/deployments/beta/wrangler.jsonc @@ -0,0 +1,21 @@ +{ + "name": "doc-kit-beta", + "compatibility_date": "2026-08-11", + + "assets": { + "directory": "../../../out", + "html_handling": "auto-trailing-slash", + "not_found_handling": "404-page" + }, + + "routes": [ + { + "pattern": "beta.docs.nodejs.org", + "custom_domain": true + } + ], + + "observability": { + "enabled": true + } +} diff --git a/scripts/vercel-docs-build.sh b/scripts/deployments/site/main.sh old mode 100755 new mode 100644 similarity index 100% rename from scripts/vercel-docs-build.sh rename to scripts/deployments/site/main.sh diff --git a/scripts/deployments/site/wrangler.jsonc b/scripts/deployments/site/wrangler.jsonc new file mode 100644 index 00000000..ff215974 --- /dev/null +++ b/scripts/deployments/site/wrangler.jsonc @@ -0,0 +1,21 @@ +{ + "name": "doc-kit-site", + "compatibility_date": "2026-08-11", + + "assets": { + "directory": "../../../www/out", + "html_handling": "auto-trailing-slash", + "not_found_handling": "404-page" + }, + + "routes": [ + { + "pattern": "doc-kit.nodejs.org", + "custom_domain": true + } + ], + + "observability": { + "enabled": true + } +} diff --git a/scripts/vercel-build.sh b/scripts/vercel-build.sh deleted file mode 100755 index b42fa0b6..00000000 --- a/scripts/vercel-build.sh +++ /dev/null @@ -1,26 +0,0 @@ -set -e - -# Use the tag captured during the prepare step as the docs version, so the -# output reflects the nodejs/node release it was generated from (e.g. v26.0.0) -# rather than the Node.js runtime version running this build (process.version). -NODE_VERSION=$(cat .node-tag) - -node packages/cli/bin/cli.mjs generate \ - -t orama-db \ - -t legacy-json \ - -t llms-txt \ - -t html \ - -i "./node/doc/api/*.md" \ - --ignore "./node/doc/api/quic.md" \ - -o "./out" \ - -c "./node/CHANGELOG.md" \ - -v "$NODE_VERSION" \ - --type-map "./node/doc/type-map.json" \ - --index "./node/doc/api/index.md" \ - --config-file "./beta/doc-kit.config.mjs" \ - --log-level debug - -cp ./node/doc/api/*.md "./out" - -rm -rf node/ -rm -f .node-tag diff --git a/scripts/vercel-prepare.sh b/scripts/vercel-prepare.sh deleted file mode 100755 index ecb33759..00000000 --- a/scripts/vercel-prepare.sh +++ /dev/null @@ -1,36 +0,0 @@ -set -e - -# Determine the latest stable release tag on nodejs/node (skip pre-releases -# like `-rc`/`-nightly`, taking the highest version-sorted tag). -LATEST_TAG=$(git ls-remote --tags --refs --sort='-v:refname' \ - https://github.com/nodejs/node.git 'v*' \ - | awk -F/ '$NF !~ /-/ { print $NF; exit }') - -if [ -z "$LATEST_TAG" ]; then - echo "Could not determine the latest nodejs/node release tag" >&2 - exit 1 -fi - -# Persist the tag so the build step can use it as the docs version -echo "$LATEST_TAG" > .node-tag - -echo "Building docs for nodejs/node $LATEST_TAG" - -# Clone the repository at that tag with no checkout and shallow history -git clone --depth 1 --branch "$LATEST_TAG" --filter=blob:none --sparse \ - https://github.com/nodejs/node.git - -# Move into the cloned directory -cd node - -# Enable sparse checkout and specify the folder -git sparse-checkout set lib doc . - -# Move back out -cd .. - -# Install dependencies -pnpm install --frozen-lockfile - -# Create the ./out directory -mkdir -p out diff --git a/vercel.json b/vercel.json deleted file mode 100644 index bd6fd8fa..00000000 --- a/vercel.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "cleanUrls": true -} diff --git a/wrangler.jsonc b/wrangler.jsonc new file mode 100644 index 00000000..6f44c138 --- /dev/null +++ b/wrangler.jsonc @@ -0,0 +1,21 @@ +{ + "name": "doc-kit-beta", + "compatibility_date": "2026-05-01", + "build": { + "command": "node --run build:beta" + }, + "assets": { + "directory": "./out", + "html_handling": "auto-trailing-slash", + "not_found_handling": "404-page" + }, + "routes": [ + { + "pattern": "beta.docs.nodejs.org", + "custom_domain": true + } + ], + "observability": { + "enabled": true + } +} From cc5b220bf4bbef0754e44c2ecc8ae9c47e835b6c Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:05:45 -0400 Subject: [PATCH 2/7] fixup! --- scripts/deployments/beta/wrangler.jsonc | 10 +++++----- scripts/deployments/site/wrangler.jsonc | 10 +++++----- wrangler.jsonc | 21 --------------------- 3 files changed, 10 insertions(+), 31 deletions(-) delete mode 100644 wrangler.jsonc diff --git a/scripts/deployments/beta/wrangler.jsonc b/scripts/deployments/beta/wrangler.jsonc index 8092b5c0..1a1acb1c 100644 --- a/scripts/deployments/beta/wrangler.jsonc +++ b/scripts/deployments/beta/wrangler.jsonc @@ -5,17 +5,17 @@ "assets": { "directory": "../../../out", "html_handling": "auto-trailing-slash", - "not_found_handling": "404-page" + "not_found_handling": "404-page", }, "routes": [ { "pattern": "beta.docs.nodejs.org", - "custom_domain": true - } + "custom_domain": true, + }, ], "observability": { - "enabled": true - } + "enabled": true, + }, } diff --git a/scripts/deployments/site/wrangler.jsonc b/scripts/deployments/site/wrangler.jsonc index ff215974..ceaa4002 100644 --- a/scripts/deployments/site/wrangler.jsonc +++ b/scripts/deployments/site/wrangler.jsonc @@ -5,17 +5,17 @@ "assets": { "directory": "../../../www/out", "html_handling": "auto-trailing-slash", - "not_found_handling": "404-page" + "not_found_handling": "404-page", }, "routes": [ { "pattern": "doc-kit.nodejs.org", - "custom_domain": true - } + "custom_domain": true, + }, ], "observability": { - "enabled": true - } + "enabled": true, + }, } diff --git a/wrangler.jsonc b/wrangler.jsonc deleted file mode 100644 index 6f44c138..00000000 --- a/wrangler.jsonc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "doc-kit-beta", - "compatibility_date": "2026-05-01", - "build": { - "command": "node --run build:beta" - }, - "assets": { - "directory": "./out", - "html_handling": "auto-trailing-slash", - "not_found_handling": "404-page" - }, - "routes": [ - { - "pattern": "beta.docs.nodejs.org", - "custom_domain": true - } - ], - "observability": { - "enabled": true - } -} From 4b476f3d02eed5a5077825ee6b1c5d7b3ddda00d Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:08:13 -0400 Subject: [PATCH 3/7] fixup! --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 88b95e0f..6c76b053 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "watch": "node --watch packages/cli/bin/cli.mjs", "build:site": "bash scripts/deployments/site/main.sh", "build:beta": "bash scripts/deployments/beta/main.sh", + "build": "node --run build:site", "changeset": "changeset", "changeset:version": "changeset version", "release": "changeset publish" From 5446a20b979e82f96c3d505991565859fb55eaab Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:10:03 -0400 Subject: [PATCH 4/7] alias 2 --- wrangler.jsonc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 wrangler.jsonc diff --git a/wrangler.jsonc b/wrangler.jsonc new file mode 100644 index 00000000..a38b1921 --- /dev/null +++ b/wrangler.jsonc @@ -0,0 +1,21 @@ +{ + "name": "doc-kit-site", + "compatibility_date": "2026-08-11", + + "assets": { + "directory": "./www/out", + "html_handling": "auto-trailing-slash", + "not_found_handling": "404-page", + }, + + "routes": [ + { + "pattern": "doc-kit.nodejs.org", + "custom_domain": true, + }, + ], + + "observability": { + "enabled": true, + }, +} From 7e08199a570d797fe18a821c9754b059a216723a Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:12:20 -0400 Subject: [PATCH 5/7] alias 2-1 --- wrangler.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrangler.jsonc b/wrangler.jsonc index a38b1921..1069ba36 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -1,5 +1,5 @@ { - "name": "doc-kit-site", + "name": "doc-kit", "compatibility_date": "2026-08-11", "assets": { From 61cdc58756db03a5749effcfe161ae7fd921a806 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:16:32 -0400 Subject: [PATCH 6/7] fixup! --- scripts/deployments/beta/wrangler.jsonc | 2 +- scripts/deployments/site/wrangler.jsonc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/deployments/beta/wrangler.jsonc b/scripts/deployments/beta/wrangler.jsonc index 1a1acb1c..49765632 100644 --- a/scripts/deployments/beta/wrangler.jsonc +++ b/scripts/deployments/beta/wrangler.jsonc @@ -1,5 +1,5 @@ { - "name": "doc-kit-beta", + "name": "doc-kit", "compatibility_date": "2026-08-11", "assets": { diff --git a/scripts/deployments/site/wrangler.jsonc b/scripts/deployments/site/wrangler.jsonc index ceaa4002..f568ae33 100644 --- a/scripts/deployments/site/wrangler.jsonc +++ b/scripts/deployments/site/wrangler.jsonc @@ -1,5 +1,5 @@ { - "name": "doc-kit-site", + "name": "doc-kit", "compatibility_date": "2026-08-11", "assets": { From df8c1cd3c2d945d00dea91965d650120383e9f21 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Tue, 11 Aug 2026 13:21:43 -0400 Subject: [PATCH 7/7] fixup! --- scripts/deployments/site/wrangler.jsonc | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/deployments/site/wrangler.jsonc b/scripts/deployments/site/wrangler.jsonc index f568ae33..2b448a80 100644 --- a/scripts/deployments/site/wrangler.jsonc +++ b/scripts/deployments/site/wrangler.jsonc @@ -1,5 +1,6 @@ { "name": "doc-kit", + "account_id": "07be8d2fbc940503ca1be344714cb0d1", "compatibility_date": "2026-08-11", "assets": {