Deploy Documentation #302
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Documentation | |
on: | |
push: | |
branches: | |
- develop | |
paths: | |
- "documentation/**" | |
workflow_dispatch: | |
jobs: | |
deploy: | |
name: Deploy to GitHub Pages | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: false | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('documentation/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Cache documentation node modules | |
uses: actions/cache@v4 | |
with: | |
path: documentation/node_modules | |
key: ${{ runner.os }}-docs-node-${{ hashFiles('documentation/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-docs-node- | |
- name: Cache Docusaurus build artifacts | |
uses: actions/cache@v4 | |
with: | |
path: | | |
documentation/.docusaurus | |
documentation/node_modules/.cache | |
documentation/.cache | |
key: ${{ runner.os }}-docusaurus-${{ hashFiles('documentation/**/*.md', 'documentation/**/*.mdx', 'documentation/docusaurus.config.js', 'documentation/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-docusaurus- | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 24 | |
cache: 'npm' | |
cache-dependency-path: documentation/package-lock.json | |
- name: Install dependencies | |
run: | | |
npm ci --prefer-offline --no-audit | |
# Install Docusaurus Faster dependency if not already in package.json | |
if ! npm list @docusaurus/faster --depth=0 2>/dev/null; then | |
npm install @docusaurus/faster --save-dev --prefer-offline | |
fi | |
working-directory: ./documentation | |
- name: Build website | |
run: npm run build | |
working-directory: ./documentation | |
env: | |
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }} | |
# Optimize Node.js for performance | |
NODE_OPTIONS: "--max-old-space-size=6144 --max-semi-space-size=1024" | |
# Enable experimental faster builds | |
DOCUSAURUS_EXPERIMENTAL_FASTER: "true" | |
# Parallel processing | |
UV_THREADPOOL_SIZE: 128 | |
- name: Add CNAME | |
run: echo "docs.typewritermc.com" > ./documentation/build/CNAME | |
- name: Deploy to GitHub Pages | |
uses: peaceiris/actions-gh-pages@v4 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./documentation/build | |
user_name: github-actions[bot] | |
user_email: 41898282+github-actions[bot]@users.noreply.github.com |