Skip to content

rebuild

rebuild #412

Workflow file for this run

name: Build & Deploy Docs (Pages)
on:
push:
branches: [main] # deploy when aggregator changes
workflow_dispatch:
inputs:
# optional per-repo overrides (branch/ref/SHA); leave empty to use defaults
miden_base_ref:
description: "Ref for 0xMiden/miden-base"
required: false
miden_tutorials_ref:
description: "Ref for 0xMiden/miden-tutorials"
required: false
miden_client_ref:
description: "Ref for 0xMiden/miden-client"
required: false
miden_node_ref:
description: "Ref for 0xMiden/miden-node"
required: false
miden_vm_ref:
description: "Ref for 0xMiden/miden-vm"
required: false
compiler_ref:
description: "Ref for 0xMiden/compiler"
required: false
repository_dispatch:
types: [rebuild]
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
env:
DEFAULT_REF: next
DEFAULT_TUTORIALS_REF: main
steps:
- name: Checkout docs site
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
# Resolve refs per repo (inputs override DEFAULT_REF)
- name: Resolve refs
id: refs
run: |
set -e
def="${DEFAULT_REF}"
tutorials_def="${DEFAULT_TUTORIALS_REF}"
# For each input: use it if set, else fallback to default ref
base_ref='${{ inputs.miden_base_ref }}'
[ -z "$base_ref" ] && base_ref="$def"
echo "MIDEN_BASE_REF=$base_ref" >> $GITHUB_OUTPUT
tutorials_ref='${{ inputs.miden_tutorials_ref }}'
[ -z "$tutorials_ref" ] && tutorials_ref="$tutorials_def"
echo "MIDEN_TUTORIALS_REF=$tutorials_ref" >> $GITHUB_OUTPUT
client_ref='${{ inputs.miden_client_ref }}'
[ -z "$client_ref" ] && client_ref="$def"
echo "MIDEN_CLIENT_REF=$client_ref" >> $GITHUB_OUTPUT
node_ref='${{ inputs.miden_node_ref }}'
[ -z "$node_ref" ] && node_ref="$def"
echo "MIDEN_NODE_REF=$node_ref" >> $GITHUB_OUTPUT
vm_ref='${{ inputs.miden_vm_ref }}'
[ -z "$vm_ref" ] && vm_ref="$def"
echo "MIDEN_VM_REF=$vm_ref" >> $GITHUB_OUTPUT
compiler_ref='${{ inputs.compiler_ref }}'
[ -z "$compiler_ref" ] && compiler_ref="$def"
echo "COMPILER_REF=$compiler_ref" >> $GITHUB_OUTPUT
echo "Resolved refs:"
echo " miden-base: $base_ref"
echo " miden-tutorials: $tutorials_ref"
echo " miden-client: $client_ref"
echo " miden-node: $node_ref"
echo " miden-vm: $vm_ref"
echo " compiler: $compiler_ref"
# Check out each source repo into vendor/*
- name: Checkout 0xMiden/miden-base
uses: actions/checkout@v4
with:
repository: 0xMiden/miden-base
ref: ${{ steps.refs.outputs.MIDEN_BASE_REF }}
path: vendor/miden-base
- name: Checkout 0xMiden/miden-tutorials
uses: actions/checkout@v4
with:
repository: 0xMiden/miden-tutorials
ref: ${{ steps.refs.outputs.MIDEN_TUTORIALS_REF }}
path: vendor/miden-tutorials
- name: Checkout 0xMiden/miden-client
uses: actions/checkout@v4
with:
repository: 0xMiden/miden-client
ref: ${{ steps.refs.outputs.MIDEN_CLIENT_REF }}
path: vendor/miden-client
- name: Checkout 0xMiden/miden-node
uses: actions/checkout@v4
with:
repository: 0xMiden/miden-node
ref: ${{ steps.refs.outputs.MIDEN_NODE_REF }}
path: vendor/miden-node
- name: Checkout 0xMiden/miden-vm
uses: actions/checkout@v4
with:
repository: 0xMiden/miden-vm
ref: ${{ steps.refs.outputs.MIDEN_VM_REF }}
path: vendor/miden-vm
- name: Checkout 0xMiden/compiler
uses: actions/checkout@v4
with:
repository: 0xMiden/compiler
ref: ${{ steps.refs.outputs.COMPILER_REF }}
path: vendor/compiler
# ============================================================
# v0.4 IA: Aggregate into nested structure
# - Core Concepts docs (miden-base, miden-vm, compiler, miden-node) → docs/core-concepts/
# - Builder docs (miden-tutorials, miden-client) → docs/builder/
# ============================================================
- name: Aggregate docs into single docs tree
run: |
echo "Aggregating vendor docs into v0.4 IA structure..."
# Clean directories that will be re-synced (v0.4 nested paths)
rm -rf docs/core-concepts/miden-base docs/core-concepts/miden-vm docs/core-concepts/miden-node docs/core-concepts/compiler
rm -rf docs/builder/tools/client
# Note: docs/builder/tutorials is NOT fully cleaned to preserve local tutorials (e.g. miden-bank)
# Core Concepts docs → docs/core-concepts/*
if [ -d "vendor/miden-base/docs/src" ]; then
mkdir -p docs/core-concepts/miden-base
cp -r vendor/miden-base/docs/src/* docs/core-concepts/miden-base/
echo "Synced miden-base → docs/core-concepts/miden-base"
fi
if [ -d "vendor/miden-vm/docs/src" ]; then
mkdir -p docs/core-concepts/miden-vm
cp -r vendor/miden-vm/docs/src/* docs/core-concepts/miden-vm/
echo "Synced miden-vm → docs/core-concepts/miden-vm"
fi
if [ -d "vendor/miden-node/docs/external/src" ]; then
mkdir -p docs/core-concepts/miden-node
cp -r vendor/miden-node/docs/external/src/* docs/core-concepts/miden-node/
echo "Synced miden-node → docs/core-concepts/miden-node"
fi
if [ -d "vendor/compiler/docs/external/src" ]; then
mkdir -p docs/core-concepts/compiler
cp -r vendor/compiler/docs/external/src/* docs/core-concepts/compiler/
echo "Synced compiler → docs/core-concepts/compiler"
fi
# Builder docs → docs/builder/*
# Sync miden-tutorials into tutorials (local tutorials are preserved)
if [ -d "vendor/miden-tutorials/docs/src" ]; then
mkdir -p docs/builder/tutorials
cp -r vendor/miden-tutorials/docs/src/* docs/builder/tutorials/
echo "Synced miden-tutorials → docs/builder/tutorials"
fi
if [ -d "vendor/miden-client/docs/external/src" ]; then
mkdir -p docs/builder/tools/client
cp -r vendor/miden-client/docs/external/src/* docs/builder/tools/client/
echo "Synced miden-client → docs/builder/tools/client"
fi
echo "Content aggregation complete. Final docs structure:"
ls -la docs/
echo "Core Concepts subdirs:"
ls -la docs/core-concepts/ || true
echo "Builder subdirs:"
ls -la docs/builder/ || true
echo "Tutorials subdirs:"
ls -la docs/builder/tutorials/ || true
- name: Install deps
run: npm install --frozen-lockfile
- name: Build site
env:
NODE_OPTIONS: "--max-old-space-size=6144" # 6GB
run: |
echo "Building Docusaurus site"
npm run build
- name: Add CNAME
run: echo docs.miden.xyz > build/CNAME
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: build
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4