Skip to content
Merged
23 changes: 18 additions & 5 deletions .github/workflows/error-reference-check.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Error Reference Check

# The published error-reference page must list every structured error code the
# product (prisma/prisma main) can emit — each emitted error links to
# /docs/orm/reference/error-reference#<CODE>. This check fails if any
# known code is missing from the page, even if the sync workflow breaks.
# The published error-reference pages must list every structured error code
# the products can emit — prisma/prisma (main) errors link to
# /docs/orm/reference/error-reference#<CODE>, prisma/prisma-cli (main) errors
# to /docs/cli/error-reference#<CODE>. This check fails if any known code is
# missing from its page, even if the sync workflow breaks.
#
# Runs on pushes to main, on PRs that touch the page or its tooling, and on a
# daily schedule so drift introduced upstream is flagged without blocking
Expand All @@ -15,6 +16,7 @@ on:
pull_request:
paths:
- apps/docs/content/docs/orm/reference/error-reference.mdx
- apps/docs/content/docs/cli/error-reference.mdx
- apps/docs/scripts/generate-error-reference.mjs
- .github/workflows/error-reference-check.yml
- .github/workflows/sync-error-reference-docs.yml
Expand Down Expand Up @@ -43,10 +45,21 @@ jobs:
path: prisma-src
persist-credentials: false

- name: Checkout prisma/prisma-cli (main)
uses: actions/checkout@v4
with:
repository: prisma/prisma-cli
ref: main
path: prisma-cli-src
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Verify page lists every known error code
- name: Verify ORM page lists every known error code
run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/reference/error-reference.mdx

- name: Verify CLI page lists every known error code
run: node prisma-cli-src/scripts/list-error-codes.mjs --root prisma-cli-src --verify apps/docs/content/docs/cli/error-reference.mdx
32 changes: 24 additions & 8 deletions .github/workflows/sync-error-reference-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,44 @@ jobs:
path: prisma-src
persist-credentials: false

- name: Checkout prisma/prisma-cli (main)
uses: actions/checkout@v4
with:
repository: prisma/prisma-cli
ref: main
path: prisma-cli-src
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Generate error reference page
- name: Generate ORM error reference page
working-directory: apps/docs
run: node ./scripts/generate-error-reference.mjs --source ../../prisma-src/docs/reference/error-reference.md
run: node ./scripts/generate-error-reference.mjs --target orm --source ../../prisma-src/docs/reference/error-reference.md

- name: Verify page lists every known error code
- name: Verify ORM page lists every known error code
run: node prisma-src/scripts/list-error-codes.mjs --root prisma-src --verify apps/docs/content/docs/orm/reference/error-reference.mdx

- name: Generate CLI error reference page
working-directory: apps/docs
run: node ./scripts/generate-error-reference.mjs --target cli --source ../../prisma-cli-src/docs/reference/error-reference.md

- name: Verify CLI page lists every known error code
run: node prisma-cli-src/scripts/list-error-codes.mjs --root prisma-cli-src --verify apps/docs/content/docs/cli/error-reference.mdx

- name: Check for changes
id: changes
run: |
if [[ -z "$(git status --porcelain --untracked-files=all -- apps/docs/content/docs/orm/reference/error-reference.mdx)" ]]; then
echo "changed=false" >> $GITHUB_OUTPUT
PAGES=(apps/docs/content/docs/orm/reference/error-reference.mdx apps/docs/content/docs/cli/error-reference.mdx)
if [[ -z "$(git status --porcelain --untracked-files=all -- "${PAGES[@]}")" ]]; then
echo "changed=false" >> "$GITHUB_OUTPUT"
echo "No changes detected"
else
echo "changed=true" >> $GITHUB_OUTPUT
echo "changed=true" >> "$GITHUB_OUTPUT"
echo "Changes detected:"
git status --short -- apps/docs/content/docs/orm/reference/error-reference.mdx
git status --short -- "${PAGES[@]}"
fi

- name: Commit and push
Expand All @@ -65,7 +81,7 @@ jobs:
run: |
git config user.email "prismabots@gmail.com"
git config user.name "Prismo"
git add apps/docs/content/docs/orm/reference/error-reference.mdx
git add apps/docs/content/docs/orm/reference/error-reference.mdx apps/docs/content/docs/cli/error-reference.mdx
git commit -m "chore(docs): sync Prisma 8 error reference"
git push "https://x-access-token:${BOT_TOKEN}@github.com/${TARGET_REPO}.git" "HEAD:${TARGET_REF}"

Expand Down
Loading
Loading