managarten/cicd/IMMEDIATE_FIXES_NEEDED.md
Wuesteon 0241f5554c fix(cicd): docker paths, formatting config,
and documentation

  - Fix Docker build paths in maerchenzauber and manadeck
  backends
  - Add comprehensive CI/CD documentation (private repo
  solution, type analysis)
  - Configure Prettier with proper plugins for Astro/Svelte
  - Update .gitignore to exclude .hive-mind and .claude-flow
  - Fix Turbo config for Presi app

  Related to cicd/integration branch - Priority 1 & 2 fixes
2025-11-27 18:33:08 +01:00

288 lines
5.8 KiB
Markdown

# CI/CD Immediate Fixes Needed
**Date**: 2025-11-27
**Status**: CI/CD pipeline running but failing
**PR**: cicd/integration branch
---
## ✅ What's Working
- GitHub Actions workflows are triggering correctly
- mana-core-auth Dockerfile builds locally
- Docker Registry (ghcr.io) configured correctly
- All CI/CD documentation created
---
## ❌ Current Failures
### 1. Docker Build Path Issues
**Error**:
```
ERROR: failed to solve: failed to calculate checksum of ref: "/backend": not found
```
**Problem**:
- Dockerfiles in `apps/*/apps/backend/Dockerfile` use wrong path references
- They copy `COPY backend/package.json` but should copy from monorepo root context
- Example: `apps/maerchenzauber/apps/backend/Dockerfile:33`
**Fix**:
Update all backend Dockerfiles to use correct paths:
```dockerfile
# WRONG (current)
COPY backend/package.json ./backend/package.json
# CORRECT
COPY apps/maerchenzauber/apps/backend/package.json ./backend/package.json
```
**Files to update**:
- `apps/maerchenzauber/apps/backend/Dockerfile`
- `apps/manadeck/apps/backend/Dockerfile`
- `apps/chat/apps/backend/Dockerfile`
- `apps/picture/apps/backend/Dockerfile`
- `apps/nutriphi/apps/backend/Dockerfile`
---
### 2. Private Repo Access (mana-core-nestjs-package)
**Error**:
```
git clone failed: exit code 128
Repository: github.com/Memo-2023/mana-core-nestjs-package.git
```
**Problem**:
- Private repo being cloned in Dockerfile needs GitHub token
- GitHub Actions doesn't have access configured
**SOLUTION DOCUMENTATION**: See **[cicd/PRIVATE_REPO_ACCESS_SOLUTION.md](PRIVATE_REPO_ACCESS_SOLUTION.md)** for complete implementation guide
**Quick Fix (3 steps, 10 minutes)**:
1. Create GitHub Personal Access Token with read access to `mana-core-nestjs-package`
2. Add secret to repo as `PRIVATE_REPO_TOKEN`
3. Update `.github/workflows/ci-main.yml` build step to include:
```yaml
secrets: |
github_token=${{ secrets.PRIVATE_REPO_TOKEN }}
```
**Why this works**: Dockerfiles already have secret mounting logic, they just need the token passed from CI.
**Alternative Options** (see full doc for details):
- Make repo public (not recommended for proprietary code)
- Publish as npm package (future enhancement)
---
### 3. Lint & Format Errors
**Error**:
```
Lint & Format Check: Process completed with exit code 1
```
**Fix**:
```bash
# Run locally to see errors
pnpm run format
pnpm run lint
# Auto-fix most issues
pnpm run format:write
pnpm run lint --fix
# Commit fixes
git add .
git commit -m "fix: auto-format and lint fixes"
```
---
### 4. Type Check Errors
**Error**:
```
Type Check: Process completed with exit code 1
```
**Fix**:
```bash
# See all type errors
pnpm run type-check
# Fix one project at a time
pnpm --filter @maerchenzauber/backend run type-check
pnpm --filter @chat/backend run type-check
# Common fixes:
# - Add missing type imports
# - Fix any/unknown types
# - Update outdated type definitions
```
---
### 5. Test Failures
**Error**:
```
Multiple test suites failing
```
**Fix**:
```bash
# Run tests locally
pnpm test
# Fix per project
pnpm --filter @maerchenzauber/backend test
pnpm --filter @memoro/mobile test
# Common issues:
# - Missing test environment setup
# - Outdated snapshots
# - Missing mocks
```
---
### 6. Build Failures
**Error**:
```
Build Projects: Process completed with exit code 1
```
**Likely causes**:
- Type errors (fix those first)
- Missing dependencies
- Circular dependencies
- Build script errors
**Fix**:
```bash
# Build locally to see errors
pnpm run build
# Or build specific projects
pnpm --filter @maerchenzauber/backend build
```
---
## 🎯 Recommended Fix Order
**Priority 1 (Blocker)**: Docker Build Paths
1. Fix path references in all backend Dockerfiles
2. Test builds locally: `docker build -t test -f apps/PROJECT/apps/backend/Dockerfile .`
3. Commit and push
**Priority 2 (Blocker)**: Private Repo Access
1. Either make mana-core-nestjs-package public
2. Or add GitHub token secrets to CI workflow
3. Test Docker build includes the package
**Priority 3**: Lint & Format
1. Run `pnpm run format:write` and `pnpm run lint --fix`
2. Manually fix remaining issues
3. Commit fixes
**Priority 4**: Type Errors
1. Run `pnpm run type-check` to see all errors
2. Fix project by project
3. Common patterns will emerge
**Priority 5**: Tests
1. Can be fixed in parallel with builds
2. Many may pass once builds work
3. Some tests may need updating
---
## 🚀 Quick Commands
```bash
# Fix formatting and lint
pnpm run format:write
pnpm run lint --fix
# Check what's broken
pnpm run type-check
pnpm run build
pnpm test
# Test Docker builds locally
docker build -t test-maerchenzauber -f apps/maerchenzauber/apps/backend/Dockerfile .
# Check CI status
# Go to: https://github.com/Memo-2023/manacore-monorepo/actions
```
---
## 📝 After All Fixes
Once all checks pass:
1. ✅ All Docker images will auto-build and push to ghcr.io
2. ✅ Can proceed with Hetzner setup
3. ✅ Can deploy to staging
4. ✅ Can deploy to production
---
## 🆘 Key Resources
- **CI/CD Docs**: `cicd/README.md`
- **Setup Guide**: `cicd/SETUP.md`
- **Hive Mind Report**: `HIVE_MIND_FINAL_REPORT.md`
- **GitHub Actions**: `.github/workflows/`
- **Docker Templates**: `docker/templates/`
---
## 📊 Current Status
| Check | Status | Priority |
| ------------------- | ---------- | --------- |
| Docker Builds | ❌ Failing | 🔥 HIGH |
| Private Repo Access | ❌ Failing | 🔥 HIGH |
| Lint & Format | ❌ Failing | ⚠️ MEDIUM |
| Type Check | ❌ Failing | ⚠️ MEDIUM |
| Tests | ❌ Failing | ⚠️ MEDIUM |
| Build | ❌ Failing | ⚠️ MEDIUM |
**Target**: All ✅ GREEN
---
**Estimated Time**: 2-4 hours to fix all issues
**Best Approach**: Fix Docker builds first, then everything else in parallel