4a8372f0d1
fix: upgrade Poetry to 2.2.1 for poetry.lock compatibility
...
Build / Code Quality Checks (push) Successful in 9m31s
Build / Build & Push Docker Images (chat) (push) Failing after 45s
Build / Build & Push Docker Images (frontend) (push) Successful in 1m3s
Build / Build & Push Docker Images (api) (push) Waiting to run
Build / Build & Push Docker Images (worker) (push) Failing after 15m16s
Resolve Docker build failure caused by poetry.lock incompatibility:
**Root Cause:**
- Local Poetry version: 2.2.1
- Dockerfile Poetry version: 1.8.0
- poetry.lock generated with 2.2.1 not compatible with 1.8.0
- Build failed: "Dependency walk failed at triton (==3.5.0)"
**Solution:**
- Upgrade Poetry to 2.2.1 in all Dockerfiles (api, chat, worker)
- Update CI/CD pipeline to match (POETRY_VERSION: 2.2.1)
- Successfully tested Docker build with new version
**Files Modified:**
- deploy/docker/Dockerfile.api
- deploy/docker/Dockerfile.chat
- deploy/docker/Dockerfile.worker
- .gitea/workflows/build.yml
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-21 15:55:15 +02:00
4d2bf99d12
feat: add comprehensive caching to CI/CD pipeline
...
Optimize Gitea Actions pipeline with multi-layer caching strategy:
**Lint Job:**
- Cache Poetry installation (~/.local) - avoids reinstalling Poetry
- Cache Poetry dependencies (.venv + ~/.cache/pypoetry) - reuses installed packages
- Cache key based on poetry.lock hash for automatic invalidation on dependency changes
**Build Job:**
- Cache Docker Buildx layers (/tmp/.buildx-cache) - speeds up incremental builds
- Dual cache strategy: local filesystem + container registry
- Cache rotation to prevent unlimited growth
- Per-component cache keys for optimal reuse
**Expected Performance:**
- Lint job: ~2-3x faster after first run (skip Poetry + deps installation)
- Build job: ~3-5x faster on incremental builds (reuse Docker layers)
- First run unchanged, subsequent runs significantly faster
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-21 15:13:48 +02:00
2db606ea00
refactor: simplify CI/CD to single build pipeline
...
Build / Code Quality Checks (push) Successful in 7m43s
Build / Build & Push Docker Images (chat) (push) Failing after 3m6s
Build / Build & Push Docker Images (api) (push) Failing after 3m38s
Build / Build & Push Docker Images (worker) (push) Failing after 3m36s
Build / Build & Push Docker Images (frontend) (push) Successful in 4m12s
Remove all unnecessary pipelines and consolidate into a single
simple build pipeline that runs on every push to main.
## Pipeline Flow
1. **Lint Job**: Code quality checks
- Black (formatting)
- Ruff (linting)
- MyPy (type checking)
2. **Build & Push Job**: Docker images (needs: lint)
- Matrix build: [api, chat, worker, frontend]
- Push to container registry
- BuildKit caching
## Removed Pipelines
- ❌ test.yml (no tests yet)
- ❌ security.yml (not needed for now)
- ❌ deploy-staging.yml (manual deployment)
- ❌ deploy-production.yml (manual deployment)
- ❌ docs-generation.yml (not needed)
- ❌ lint.yml (merged into build)
- ❌ ci.yml.old (old backup)
- ❌ README.md (unnecessary complexity)
## Benefits
- ✅ Simple and focused
- ✅ Fast feedback on main pushes
- ✅ Quality checks before build
- ✅ Easy to understand and maintain
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-21 13:42:41 +02:00
d6d44270ee
refactor: reorganize CI/CD pipelines into separate workflow files
...
Build / Build and Push Docker Images (worker) (push) Waiting to run
Deploy Staging / Deploy to Staging (push) Waiting to run
Lint / Lint Code (push) Has been cancelled
Security / Security Scanning (push) Has been cancelled
Build / Build and Push Docker Images (api) (push) Has started running
Build / Build and Push Docker Images (chat) (push) Has started running
Build / Build and Push Docker Images (frontend) (push) Has started running
Test / Run Tests (push) Has been cancelled
BREAKING CHANGE: Monolithic ci.yml split into focused pipeline files
## Pipeline Reorganization
Split single CI/CD pipeline into 7 specialized workflows:
1. **lint.yml** - Code quality checks (Black, Ruff, MyPy)
2. **test.yml** - Test suite with coverage reporting
3. **security.yml** - Security scanning (Bandit)
4. **build.yml** - Docker image builds and registry push
5. **deploy-staging.yml** - Staging environment deployment
6. **deploy-production.yml** - Production deployment (tags only)
7. **docs-generation.yml** - Scheduled documentation generation
## Benefits
- **Modularity**: Each pipeline has single responsibility
- **Performance**: Workflows run independently, faster feedback
- **Clarity**: Easier to understand and maintain
- **Flexibility**: Trigger pipelines independently
- **Debugging**: Isolated failures easier to diagnose
## Dockerfile Improvements
- Fix FROM AS casing (was 'as', now 'AS') in all Dockerfiles
- Resolves Docker build warnings
- Improves consistency across build files
## Documentation
- Added .gitea/workflows/README.md with:
- Workflow descriptions and triggers
- Dependency diagram
- Environment variables reference
- Troubleshooting guide
- Best practices
## Migration Notes
- Old monolithic pipeline backed up as ci.yml.old
- All triggers preserved from original pipeline
- No changes to build or deploy logic
- Same environment variables and secrets required
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-21 13:37:21 +02:00