Repository navigation
fix(benchmarks): row 14 close-out — grading hermeticity finding, vali… #13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| ci: | |
| name: Python ${{ 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 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install package with dev dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Lint with ruff | |
| run: ruff check src/ tests/ | |
| - name: Type-check with mypy | |
| run: mypy src | |
| # ROADMAP W13. 5 contracts derived from ARCHITECTURE.md §4. Uses the | |
| # `lint-imports` console script -- `python -m importlinter.cli` has no | |
| # __main__ guard and silently no-ops (exit 0) regardless of contract | |
| # status. | |
| - name: Check import layer contracts | |
| run: lint-imports | |
| - name: Run tests with coverage | |
| run: pytest --cov=agentevalops --cov-report=xml --cov-report=term-missing --cov-fail-under=94 | |
| - name: Upload coverage report | |
| if: matrix.python-version == '3.11' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-xml | |
| path: coverage.xml | |
| if-no-files-found: ignore | |
| - name: Smoke — run | |
| run: agentevalops run --config configs/toy_smoke.yaml --output runs/ci-smoke | |
| - name: Smoke — validate-bundle | |
| run: agentevalops validate-bundle --bundle runs/ci-smoke | |
| - name: Smoke — replay | |
| run: agentevalops replay --bundle runs/ci-smoke | |
| - name: Clean up generated run | |
| if: always() | |
| run: rm -rf runs/ci-smoke | |
| # Makes the dependency floor in pyproject.toml's `dependencies` testable. | |
| # The `ci` job above always resolves to the newest satisfying version, so a | |
| # floor that doesn't actually work stays invisible until a user installs | |
| # into an environment that happens to resolve close to the minimum -- which | |
| # is exactly what happened on 2026-08-02 (typer downgraded to its declared | |
| # floor by an unrelated project sharing a dev env; 49 CLI tests failed). | |
| # This job installs at exactly the floors pinned in constraints-min.txt and | |
| # runs the same gate, so a floor that regresses fails CI instead of a user. | |
| ci-min-deps: | |
| name: CI (min deps) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python (project minimum) | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: Install package with dev dependencies at the declared floor | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" -c constraints-min.txt | |
| - name: Lint with ruff | |
| run: ruff check src/ tests/ | |
| - name: Type-check with mypy | |
| run: mypy src | |
| - name: Run tests with coverage | |
| run: pytest --cov=agentevalops --cov-report=term-missing --cov-fail-under=94 | |
| - name: Smoke — run | |
| run: agentevalops run --config configs/toy_smoke.yaml --output runs/ci-min-smoke | |
| - name: Smoke — validate-bundle | |
| run: agentevalops validate-bundle --bundle runs/ci-min-smoke | |
| - name: Smoke — replay | |
| run: agentevalops replay --bundle runs/ci-min-smoke | |
| - name: Clean up generated run | |
| if: always() | |
| run: rm -rf runs/ci-min-smoke |