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