v1.0: output-path UX + UIList layout polish #14
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: 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. |