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 also required, or test_libindex.py's 77 tests silently SKIP via # importorskip instead of running -- a green run that tested less. 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 local machine: .scrub-terms is # gitignored, so CI runs the generic .scrub-terms.example instead. run: python tools/scrub.py --worktree --terms .scrub-terms.example