Nomearod's picture
ci: document zero-secret contract on test job with empty env block
86ddcb7
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
# Explicit empty env: prevents accidental dependency on injected
# secrets. Tests use MockProvider and require no API keys; if a
# future test imports a provider that needs a key, it will fail
# in CI and in any contributor fork the same way (no silent
# divergence based on whether secrets are present).
env: {}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: ${{ runner.os }}-pip-
- run: pip install -e ".[dev]"
- name: Lint
run: ruff check agent_bench/ tests/
- name: Type check
run: mypy agent_bench/ --ignore-missing-imports
- name: Run tests
run: pytest tests/ -v --tb=short
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -f docker/Dockerfile -t agent-bench:ci .
- name: Smoke test
run: |
docker run --rm agent-bench:ci python -c \
"from agent_bench import __version__; print(__version__)"