spb/air Public MIT
AIR — The Language of Accounting.
Python 100%
1# Projet : AIR — Accounting Intermediate Representation2# Auteur : Simon-Pierre Boucher3# Contact : contact@spboucher.ai4# CI: offline test suite (no API keys) + author-header gate on every push/PR.56name: CI78on:9 push:10 branches: [main]11 pull_request:1213jobs:14 test:15 runs-on: ubuntu-latest16 strategy:17 fail-fast: false18 matrix:19 python-version: ["3.11", "3.12", "3.13"]20 steps:21 - uses: actions/checkout@v422 - uses: actions/setup-python@v523 with:24 python-version: ${{ matrix.python-version }}25 - name: Install26 run: pip install -e ".[dev]"27 - name: Author-header gate28 run: python scripts/check_headers.py29 - name: Offline test suite (99 tests — no network, no API keys)30 run: pytest tests/ -q --ignore=tests/test_llm_live.py3132 golden-determinism:33 # compile the demo document twice on a fresh interpreter each time:34 # byte-identical CSV output or the build fails35 runs-on: ubuntu-latest36 steps:37 - uses: actions/checkout@v438 - uses: actions/setup-python@v539 with:40 python-version: "3.12"41 - name: Install42 run: pip install -e .43 - name: Determinism check44 run: |45 python -m sdk.cli compile tests/fixtures/demo_document.yaml \46 --policies alsl/policies/ca-qc-2026.yaml --backend csv --out out_a47 python -m sdk.cli compile tests/fixtures/demo_document.yaml \48 --policies alsl/policies/ca-qc-2026.yaml --backend csv --out out_b49 diff out_a/*.csv out_b/*.csv && echo "byte-identical: OK"50