Skip to content

v1.0: output-path UX + UIList layout polish #14

v1.0: output-path UX + UIList layout polish

v1.0: output-path UX + UIList layout polish #14

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
validate:
name: Validate (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Apple Silicon (macos-14) is non-negotiable — Renderset shipped a
# 2.0.1 bug specific to M-series Mac. Intel (macos-13) dropped:
# Apple is phasing Intel Macs out, and Intel runner availability
# is unreliable on private repos.
os: [ubuntu-latest, macos-14, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Validate Python syntax
run: python -m compileall -q stage
- name: Validate manifest
shell: python
run: |
import tomllib
import pathlib
path = pathlib.Path("stage/blender_manifest.toml")
data = tomllib.loads(path.read_text())
required = {
"schema_version", "id", "version", "name", "tagline",
"maintainer", "type", "blender_version_min", "license",
}
missing = required - set(data)
if missing:
raise SystemExit(f"Manifest missing required keys: {sorted(missing)}")
print(f"OK: {data['name']} v{data['version']} for Blender {data['blender_version_min']}+")
- name: Install pytest
run: pip install pytest
- name: Run unit tests
run: pytest tests/unit
- name: Build extension package
run: python scripts/package.py
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: stage-${{ matrix.os }}
path: build/*.zip
retention-days: 7
# TODO Phase 1: add a job that runs `blender -b -P tests/run.py` on each platform
# once we have facet capture/restore tests. Use a community setup-blender action
# or download Blender 5.1+ directly from download.blender.org.