feat: CI/CD pipeline + Learning/Medicine/Travel services
Some checks failed
Build and Deploy GooSeek / build-backend (push) Failing after 1m4s
Build and Deploy GooSeek / build-webui (push) Failing after 1m2s
Build and Deploy GooSeek / deploy (push) Has been skipped

- Add Gitea Actions workflow for automated build & deploy
- Add K8s manifests: webui, travel-svc, medicine-svc, sandbox-svc
- Update kustomization for localhost:5000 registry
- Add ingress for gooseek.ru and api.gooseek.ru
- Learning cabinet with onboarding, courses, sandbox integration
- Medicine service with symptom analysis and doctor matching
- Travel service with itinerary planning
- Server setup scripts (NVIDIA/CUDA, K3s, Gitea runner)

Made-with: Cursor
This commit is contained in:
home
2026-03-02 20:25:44 +03:00
parent 08bd41e75c
commit ab48a0632b
92 changed files with 15562 additions and 2198 deletions

View File

@@ -0,0 +1,81 @@
name: Build and Deploy GooSeek
on:
push:
branches:
- main
- master
env:
REGISTRY: localhost:5000
jobs:
build-backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build backend image (all services)
working-directory: backend
run: |
docker build \
-f deploy/docker/Dockerfile.all \
-t $REGISTRY/gooseek/backend:${{ github.sha }} \
-t $REGISTRY/gooseek/backend:latest \
.
- name: Push backend image
run: |
docker push $REGISTRY/gooseek/backend:${{ github.sha }}
docker push $REGISTRY/gooseek/backend:latest
build-webui:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build WebUI image
working-directory: backend/webui
run: |
docker build \
-t $REGISTRY/gooseek/webui:${{ github.sha }} \
-t $REGISTRY/gooseek/webui:latest \
.
- name: Push WebUI image
run: |
docker push $REGISTRY/gooseek/webui:${{ github.sha }}
docker push $REGISTRY/gooseek/webui:latest
deploy:
needs: [build-backend, build-webui]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to Kubernetes
run: |
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
cd backend/deploy/k8s
# Apply kustomization
kubectl apply -k .
# Restart deployments to pull new images
kubectl -n gooseek rollout restart deployment/api-gateway
kubectl -n gooseek rollout restart deployment/webui
kubectl -n gooseek rollout restart deployment/chat-svc
kubectl -n gooseek rollout restart deployment/agent-svc
kubectl -n gooseek rollout restart deployment/search-svc
kubectl -n gooseek rollout restart deployment/discover-svc
kubectl -n gooseek rollout restart deployment/learning-svc
kubectl -n gooseek rollout restart deployment/medicine-svc
kubectl -n gooseek rollout restart deployment/travel-svc
kubectl -n gooseek rollout restart deployment/sandbox-svc
# Wait for critical deployments
kubectl -n gooseek rollout status deployment/api-gateway --timeout=180s
kubectl -n gooseek rollout status deployment/webui --timeout=180s
echo "=== Deploy completed ==="
kubectl -n gooseek get pods