feat: CI/CD pipeline + Learning/Medicine/Travel services
- 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:
81
.gitea/workflows/deploy.yaml
Normal file
81
.gitea/workflows/deploy.yaml
Normal 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
|
||||
Reference in New Issue
Block a user