Commit Graph

12 Commits

Author SHA1 Message Date
kennethreitz 6067a2b3a3 Enable uv cache in CI to speed up tests 2025-12-05 15:35:36 -05:00
kennethreitz 063bbabab1 Increase pytest workers to 8
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:32:44 -05:00
kennethreitz 4a6171160e Increase pytest workers to 6
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:32:33 -05:00
kennethreitz f7a93ab5fc Increase pytest parallelism to 4 workers
Use 4 workers instead of auto (2) for faster test runs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:32:19 -05:00
kennethreitz 4bcbe9e863 Add fail-fast (-x) to pytest in CI
Stop test run on first failure to save CI time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 14:30:07 -05:00
kennethreitz 32bced2927 Enable blue-green deployment strategy
Changes:
- Added [deploy] strategy = "bluegreen" to fly.toml
- Increased min_machines_running from 1 to 2
- Disabled auto_stop_machines to keep both environments ready
- Updated GitHub Actions workflow with --strategy bluegreen flag

How Blue-Green Works:
1. Deploy creates new "green" environment alongside current "blue"
2. Health checks verify green environment is healthy
3. Traffic switches instantly from blue to green
4. Old blue environment kept briefly for instant rollback
5. Zero downtime during deployments

Cost Impact:
- Runs minimum 2 machines instead of 1
- Ensures true zero-downtime deployments
- Instant rollback capability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 13:52:19 -05:00
kennethreitz 7aa6063cc0 Fix fly deploy workflow to trigger on push
Change from workflow_run trigger (unreliable) to direct push trigger
with test job as dependency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 21:07:47 -05:00
kennethreitz e32bcf00ce Clean up dependencies
- Move pytest, pytest-cov, pytest-xdist to dev dependencies
- Remove redundant jinja2 and uvicorn (included in fastapi[standard])
- Update CI to use --extra dev for test dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:52:28 -05:00
kennethreitz 1e86c719be Use pytest-xdist for parallel test execution
Add pytest-xdist and use -n auto to run tests in parallel within
a single job instead of multiple GitHub Actions runners.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:45:35 -05:00
kennethreitz 5e6c63b0f8 Run tests in parallel and remove duplicate test runs
- Split test suite into 3 parallel jobs (API, edge cases, web routes)
- Change fly-deploy to trigger after Tests workflow succeeds
- Remove duplicate test run from deploy workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:41:09 -05:00
kennethreitz 6994d96f94 Add GitHub Actions CI/CD with automated testing
New workflow: test.yml
- Runs on push to main and all pull requests
- Executes full test suite with pytest
- Generates coverage report
- Includes optional code quality checks

Updated workflow: fly-deploy.yml
- Added test job that runs before deployment
- Deploy only happens if all tests pass
- Prevents deploying broken code to production

Updated dependencies:
- Added pytest-cov for coverage reporting in CI

The test suite (100+ tests) now runs automatically:
- On every push to main
- On every pull request
- Before every deployment to Fly.io

This ensures code quality and prevents regressions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 13:03:06 -05:00
kennethreitz 8c79f732f8 Add Fly.io deployment configuration
- Add Dockerfile with multi-stage Python build
- Add GitHub Actions workflow for automatic deployment on main branch
- Add fly.toml with app configuration and auto-scaling settings
- Add .dockerignore to exclude development files from build context
2025-05-26 12:56:20 -04:00