WillTools: precast shop-ticket QC and panel handling tools
ci / test (push) Has been cancelled

Public demo snapshot of an in-house pyRevit extension for precast concrete
shop-ticket QC (37 checks / 46 checklist rows) and a standalone panel
handling solver (PCI Chapter 8).

- No client, job, plant or product data: knowledge layers ship as
  structural templates only.
- Ticket QC's model-read escalation targets a LAN model server endpoint
  (configurable), not a cloud provider.
- Built from the private development repo via tools/make_dist.py.
This commit is contained in:
2026-09-03 16:33:47 -05:00
commit 52d94303bc
281 changed files with 155656 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
name: ci
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install
# requirements.txt is the single source of truth for host-side deps.
# PyYAML fixes collection (ticketpage._read_yaml falls back to it off
# IronPython; without it eight test files die before running). pymupdf
# is required for tools/ticket_delta.py's tests.
run: pip install -r requirements.txt
- name: panellift tests
run: python -m pytest panellift -q -p no:cacheprovider
- name: vibe tests (the Revit-free half of the extension)
run: python -m pytest WillTools.extension -q -p no:cacheprovider
- name: Syntax smoke (extension + tools + panellift)
run: python -m compileall -q WillTools.extension tools panellift/src
- name: Scrub worktree with the committed generic sample terms
# Real client names never leave the owner's machine: this
# distribution ships no .scrub-terms at all, so CI runs the generic
# .scrub-terms.example instead -- the same fallback a colleague's own
# clone uses locally with no real term list.
run: python tools/scrub.py --worktree --terms .scrub-terms.example