test(cli): cover the diagnose command's exit codes, loading paths and flags #457
Workflow file for this run
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
| # CI Workflow for OpenAgent Eval | |
| # Runs on every push and pull request | |
| # Matrix strategy: Python 3.10, 3.11, 3.12 | |
| name: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main, develop] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| PYTHON_DEFAULT: "3.11" | |
| FORCE_COLOR: "1" | |
| jobs: | |
| # ────────────────────────────────────────────────────────────── | |
| # Lint & Format | |
| # ────────────────────────────────────────────────────────────── | |
| lint: | |
| name: Lint & Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ env.PYTHON_DEFAULT }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Run Ruff linter | |
| run: uv run ruff check . || true | |
| continue-on-error: true | |
| - name: Run Ruff formatter check | |
| run: uv run ruff format --check . || true | |
| continue-on-error: true | |
| - name: Run MyPy type checker | |
| run: | | |
| # A missing target is a config error, not a finding: surface it | |
| # instead of letting `|| true` report success. | |
| test -d openagent_eval | |
| uv run mypy openagent_eval --ignore-missing-imports || true | |
| continue-on-error: true | |
| # ────────────────────────────────────────────────────────────── | |
| # Test Matrix | |
| # ────────────────────────────────────────────────────────────── | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| needs: lint | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.11", "3.12"] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Run unit tests | |
| run: uv run pytest tests/unit -v --tb=short | |
| - name: Run integration tests | |
| run: uv run pytest tests/integration -v --tb=short || true | |
| continue-on-error: true | |
| # ────────────────────────────────────────────────────────────── | |
| # Coverage | |
| # ────────────────────────────────────────────────────────────── | |
| coverage: | |
| name: Coverage | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ env.PYTHON_DEFAULT }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Generate coverage report | |
| run: | | |
| uv run pytest --cov=openagent_eval \ | |
| --cov-report=xml \ | |
| --cov-report=term-missing \ | |
| --cov-report=html \ | |
| --cov-fail-under=75 | |
| - name: Upload coverage artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-report | |
| path: | | |
| coverage.xml | |
| htmlcov/ | |
| retention-days: 30 | |
| - name: Upload to Codecov | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| file: coverage.xml | |
| flags: unittests | |
| name: codecov-${{ github.sha }} | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| # ────────────────────────────────────────────────────────────── | |
| # Build Validation | |
| # ────────────────────────────────────────────────────────────── | |
| build: | |
| name: Build Package | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ env.PYTHON_DEFAULT }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| enable-cache: true | |
| - name: Build package | |
| run: uvx --from build python -m build | |
| - name: Verify package | |
| run: uvx --from twine twine check dist/* | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| retention-days: 30 |