Skip to content

Extract full canonical paths for base classes #15

Extract full canonical paths for base classes

Extract full canonical paths for base classes #15

Workflow file for this run

name: Deploy to GitHub Pages
on:
push:
branches: [master]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install Python dependencies
run: pip install -r scripts/requirements.txt
- name: Clone PathSim repositories for API extraction
run: |
git clone https://github.com/pathsim/pathsim.git ../pathsim || { echo "Failed to clone pathsim"; exit 1; }
git clone https://github.com/pathsim/pathsim-chem.git ../pathsim-chem || { echo "Failed to clone pathsim-chem"; exit 1; }
git clone https://github.com/pathsim/pathsim-vehicle.git ../pathsim-vehicle || { echo "Failed to clone pathsim-vehicle"; exit 1; }
- name: Verify repository clones
run: |
for repo in pathsim pathsim-chem pathsim-vehicle; do
if [ ! -d "../$repo/.git" ]; then
echo "Error: Repository $repo not properly cloned"
exit 1
fi
echo "✓ $repo cloned successfully ($(git -C ../$repo describe --tags --always 2>/dev/null || echo 'no tags'))"
done
# Cache historical API versions (reduces extraction time)
- name: Cache versioned API files
uses: actions/cache@v4
with:
path: static/api/versions
key: api-versions-v2-${{ hashFiles('scripts/extract-versions.py') }}
restore-keys: |
api-versions-v2-
# Always extract latest API (for src/lib/api/generated/)
- name: Extract latest API
run: python scripts/extract-api.py
# Smart extraction: only missing versions + always re-extract latest
- name: Extract versioned API
run: python scripts/extract-versions.py
# Always regenerate manifests (to pick up new versions)
- name: Generate version manifests
run: python scripts/generate-manifests.py
- name: Prepare notebooks
run: python scripts/prepare-notebooks.py
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
env:
BASE_PATH: '/${{ github.event.repository.name }}'
run: npm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: build
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4