Skip to content

Commit 5d9007f

Browse files
authored
ci: add DevPortal publishing pattern (#155)
* ci: add DevPortal publishing pattern - Add static MDX generation from example source files - Migrate docs from npm to pnpm - Extract sidebar to sidebar.config.json - Add publish-devportal-docs workflow - Remove typeDocSidebarGroup import, use sidebar.config.json - Simplify content.config.ts (remove examples collection) - Delete dynamic example pages * fix(ci): added npm i at root * fix: check docs step and npm audit failure * chore: addressed PR comments
1 parent 368be3f commit 5d9007f

File tree

16 files changed

+4858
-7335
lines changed

16 files changed

+4858
-7335
lines changed

.github/workflows/pr.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,23 @@ jobs:
2828
runs-on: ubuntu-latest
2929
steps:
3030
- name: Clone repository
31-
uses: actions/checkout@v4
31+
uses: actions/checkout@v6
3232
with:
3333
fetch-depth: 1
3434
- name: Setup Node.js
35-
uses: actions/setup-node@v4
35+
uses: actions/setup-node@v6
3636
with:
3737
node-version: 20.x
38+
- name: Setup pnpm
39+
uses: pnpm/action-setup@v4
40+
with:
41+
package_json_file: docs/package.json
3842
- name: Install root dependencies
3943
run: npm ci
4044
- name: Install docs dependencies
41-
run: npm ci --prefix docs
45+
run: pnpm install --frozen-lockfile --dir docs
4246
- name: Verify documentation builds
43-
run: npm run docs:build
47+
run: pnpm --dir docs build
4448
verify_examples:
4549
runs-on: ubuntu-latest
4650
steps:
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Publish DevPortal Docs
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ci/add-publish-to-devportal-workflow]
7+
tags: ['v*']
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
publish-docs:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v6
17+
- uses: actions/setup-node@v6
18+
with:
19+
node-version: 22
20+
- uses: pnpm/action-setup@v4
21+
with:
22+
package_json_file: docs/package.json
23+
- name: Install root dependencies
24+
run: npm ci
25+
- name: Build package
26+
run: npm run build
27+
- name: Publish DevPortal Docs
28+
uses: algorandfoundation/devportal/.github/actions/publish-devportal-docs@ci/update-publish-devportal-docs-workflow
29+
with:
30+
docs-dir: docs

.nsprc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"notes": "@isaacs/brace-expansion via npm in @semantic-release/npm - bundled inside npm, waiting for upstream fix",
55
"expiry": "2026-06-01"
66
}
7-
}
7+
}

docs/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ dist/
44
.astro/
55
# generated API docs (built by starlight-typedoc)
66
src/content/docs/api/
7+
# generated example docs (built by generate-examples-mdx.ts)
8+
src/content/docs/examples/
79

810
# dependencies
911
node_modules/

docs/astro.config.mjs

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// @ts-check
22
import { defineConfig } from 'astro/config';
33
import starlight from '@astrojs/starlight';
4-
import starlightTypeDoc, { typeDocSidebarGroup } from 'starlight-typedoc';
4+
import starlightTypeDoc from 'starlight-typedoc';
5+
import sidebar from './sidebar.config.json';
56
import remarkGithubAlerts from 'remark-github-alerts';
67

78
// https://astro.build/config
@@ -36,47 +37,11 @@ export default defineConfig({
3637
typeDoc: {
3738
excludeReferences: true,
3839
gitRevision: 'main',
40+
entryFileName: 'index',
3941
},
4042
}),
4143
],
42-
sidebar: [
43-
{ label: 'Home', link: '/' },
44-
{
45-
label: 'Getting Started',
46-
items: [{ label: 'Quick Start', slug: 'tutorials/quick-start' }],
47-
},
48-
{
49-
label: 'Guides',
50-
items: [
51-
{ slug: 'guide/subscriber' },
52-
{ slug: 'guide/subscriptions' },
53-
],
54-
},
55-
{
56-
label: 'Concepts',
57-
items: [
58-
{ slug: 'concepts/sync-behaviour' },
59-
{ slug: 'concepts/low-latency' },
60-
{ slug: 'concepts/watermarking' },
61-
{ slug: 'concepts/filtering' },
62-
{ slug: 'concepts/arc28-events' },
63-
{ slug: 'concepts/emit-arc28-events' },
64-
{ slug: 'concepts/inner-transactions' },
65-
{ slug: 'concepts/state-proofs' },
66-
{ slug: 'concepts/fast-catchup' },
67-
],
68-
},
69-
{
70-
label: 'Examples',
71-
items: [{ label: 'Overview', link: '/examples/' }],
72-
},
73-
{
74-
label: 'Migration Guides',
75-
collapsed: true,
76-
autogenerate: { directory: 'migration' },
77-
},
78-
typeDocSidebarGroup,
79-
],
44+
sidebar,
8045
}),
8146
],
8247
});

0 commit comments

Comments
 (0)