name: CI on: push: branches: [main] pull_request: jobs: tests: name: Test suite (py${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install run: | python -m pip install --upgrade pip pip install -e . pip install pytest - name: Run tests run: pytest -q - name: Verify audit ledger integrity run: | if [ -f ledger/ledger.jsonl ]; then python -m govtool ledger verify else echo "no ledger committed yet" fi demo: name: End-to-end amendment demo runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install run: | python -m pip install --upgrade pip pip install -e . - name: Run demo (one passing amendment, one failing the vote gate) run: python demo/run_demo.py