name: Check
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
core:
name: Core
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup uv
uses: astral-sh/setup-uv@v5
- name: Setup Python
run: uv python install 3.11
- name: Install
run: npm install
- name: Sync Python workspace
run: uv sync --all-packages
- name: Check
run: npm run check
build123d:
name: Build123d Examples
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup uv
uses: astral-sh/setup-uv@v5
- name: Setup Python
run: uv python install 3.11
- name: Install Node dependencies
run: npm install
- name: Sync Python workspace
run: uv sync --all-packages
- name: Check build123d examples
run: npm run check:build123d
- name: Check optional OCP STEP backend
run: npm run check:ocp
- name: Check mixed-intent CAD proof
run: npm run check:mixed-intent
- name: Check bearing-seat CAD proof
run: npm run check:bearing-seat
- name: Check counterbore CAD proof
run: npm run check:counterbore
- name: Check heat-set insert pocket CAD proof
run: npm run check:insert-pocket
- name: Check straight-slot CAD proof
run: npm run check:slots
- name: Check receipt explanations
run: npm run check:explain
- name: Check printable gallery
run: npm run check:gallery
- name: Check gallery render proof
run: npm run check:gallery:render
- name: Confirm generated artifacts are untracked
run: |
test -z "$(git status --short --untracked-files=no)"
fresh-install:
name: Fresh Install
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup uv
uses: astral-sh/setup-uv@v5
- name: Setup Python
run: uv python install 3.11
- name: Install Node dependencies
run: npm install
- name: Check published install and starter fix loop
run: npm run check:fresh-install