Major polish, library implementation, claude plugin implementation #28
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: Tests | |
| on: | |
| pull_request: | |
| branches: [ main ] | |
| push: | |
| branches: [ main ] | |
| jobs: | |
| fast-tests: | |
| name: Fast Tests (Unit + Lightweight) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Create virtual environment | |
| run: uv venv | |
| - name: Install dependencies | |
| run: | | |
| source .venv/bin/activate | |
| uv pip install -e ".[dev]" | |
| - name: Run unit tests | |
| run: | | |
| source .venv/bin/activate | |
| pytest tests/ -v --tb=short | |
| e2e-tests: | |
| name: End-to-End Tests (API) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: | | |
| github.ref == 'refs/heads/main' || | |
| startsWith(github.ref, 'refs/heads/e/') || | |
| startsWith(github.head_ref, 'e/') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Create virtual environment | |
| run: uv venv | |
| - name: Install dependencies | |
| run: | | |
| source .venv/bin/activate | |
| uv pip install -e ".[dev]" | |
| - name: Run integration tests | |
| timeout-minutes: 15 | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| PYTHONUNBUFFERED: "1" | |
| run: | | |
| source .venv/bin/activate | |
| echo "Starting integration tests at $(date)" | |
| pytest tests/ --run-integration -v --tb=short -s | |
| echo "Integration tests completed at $(date)" | |
| - name: Upload logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: e2e-test-logs | |
| path: | | |
| /tmp/fireteam-test-*/ | |
| tests/**/*.log | |
| retention-days: 7 |