Skip to content

Commit bab0ae8

Browse files
committed
support release and dev docs
1 parent 42999fa commit bab0ae8

2 files changed

Lines changed: 57 additions & 1 deletion

File tree

.github/workflows/deploy-docs.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,33 @@ jobs:
4343
- name: Build packages
4444
run: pnpm -r run build
4545

46-
- name: Build documentation
46+
- name: Get latest release tag
47+
id: release
48+
run: |
49+
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
50+
echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT
51+
echo "exists=$([[ -n $LATEST_TAG ]] && echo true || echo false)" >> $GITHUB_OUTPUT
52+
53+
- name: Build main documentation
4754
run: pnpm run docs:build
55+
env:
56+
RELEASE_VERSION: ${{ steps.release.outputs.tag }}
57+
58+
- name: Build release documentation
59+
if: steps.release.outputs.exists == 'true'
60+
run: |
61+
# Save main build
62+
mv docs/.vitepress/dist docs/.vitepress/dist-main
63+
64+
# Checkout and build at release tag
65+
git checkout ${{ steps.release.outputs.tag }}
66+
pnpm install --frozen-lockfile
67+
pnpm -r run build
68+
RELEASE_VERSION=${{ steps.release.outputs.tag }} IS_RELEASE_BUILD=true pnpm run docs:build
69+
70+
# Combine: main at root, release in /release/
71+
mv docs/.vitepress/dist docs/.vitepress/dist-main/release
72+
mv docs/.vitepress/dist-main docs/.vitepress/dist
4873
4974
- name: Upload artifact
5075
uses: actions/upload-pages-artifact@v3

docs/.vitepress/config.mts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
11
import { defineConfig } from 'vitepress';
22
import typedocSidebar from '../api/typedoc-sidebar.json';
33

4+
// Version configuration from environment
5+
const releaseVersion = process.env.RELEASE_VERSION || 'unreleased';
6+
const isReleaseBuild = process.env.IS_RELEASE_BUILD === 'true';
7+
8+
// Base path for this build
9+
const basePath = '/b2c-developer-tooling/';
10+
11+
// Build version dropdown items
12+
// Note: VitePress automatically prepends the base path to links, so we use root-relative paths
13+
function getVersionItems() {
14+
if (isReleaseBuild) {
15+
return [
16+
{ text: 'Development (main)', link: basePath },
17+
{ text: `Release (${releaseVersion})`, link: `${basePath}release/` },
18+
];
19+
}
20+
// Main branch build - check if there's a release version
21+
if (releaseVersion !== 'unreleased') {
22+
return [
23+
{ text: 'Development (main)', link: '/' },
24+
{ text: `Release (${releaseVersion})`, link: '/release/' },
25+
];
26+
}
27+
// No release yet
28+
return [{ text: 'Development (main)', link: '/' }];
29+
}
30+
431
const guideSidebar = [
532
{
633
text: 'Getting Started',
@@ -73,6 +100,10 @@ export default defineConfig({
73100
{ text: 'Guide', link: '/guide/' },
74101
{ text: 'CLI Reference', link: '/cli/' },
75102
{ text: 'API Reference', link: '/api/' },
103+
{
104+
text: isReleaseBuild ? releaseVersion : 'dev',
105+
items: getVersionItems(),
106+
},
76107
],
77108

78109
footer: {

0 commit comments

Comments
 (0)