diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2a6f4a1..a45b3da 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -112,8 +112,10 @@ jobs: tags: | ${{ secrets.DOCKER_REGISTRY_URL }}/stars-backend:${{ needs.check_version_update.outputs.backend_version }} ${{ secrets.DOCKER_REGISTRY_URL }}/stars-backend:latest - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: type=registry,ref=${{ secrets.DOCKER_REGISTRY_URL }}/stars-backend:cache + cache-to: type=registry,ref=${{ secrets.DOCKER_REGISTRY_URL }}/stars-backend:cache,mode=max + # Use docker registry cache not to exceed GitHub Actions storage limits + # Builds will be slower but won't fail due to storage limits - name: Backend Build Summary run: | @@ -203,3 +205,51 @@ jobs: echo "⏭️ (SKIP) Frontend: No version change detected" fi echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + + deploy-backend: + name: Restart Backend Deployment + if: github.event.pull_request.merged && needs.build-backend.result == 'success' + needs: [check_version_update, build-backend] + runs-on: ubuntu-latest + steps: + - name: Set up kubectl + uses: azure/setup-kubectl@v3 + with: + version: 'latest' + + - name: Configure kubectl for SAP BTP Kyma + run: | + mkdir -p ~/.kube + echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config + chmod 600 ~/.kube/config + + - name: Restart Backend Deployment + run: | + echo "🔄 Restarting backend deployment to pull latest image..." + kubectl rollout restart deployment/stars-backend -n stars + kubectl rollout status deployment/stars-backend -n stars --timeout=10m + echo "✅ Backend deployment restarted successfully" + + deploy-frontend: + name: Restart Frontend Deployment + if: github.event.pull_request.merged && needs.build-frontend.result == 'success' + needs: [check_version_update, build-frontend] + runs-on: ubuntu-latest + steps: + - name: Set up kubectl + uses: azure/setup-kubectl@v3 + with: + version: 'latest' + + - name: Configure kubectl for SAP BTP Kyma + run: | + mkdir -p ~/.kube + echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config + chmod 600 ~/.kube/config + + - name: Restart Frontend Deployment + run: | + echo "🔄 Restarting frontend deployment to pull latest image..." + kubectl rollout restart deployment/stars-frontend -n stars + kubectl rollout status deployment/stars-frontend -n stars --timeout=10m + echo "✅ Frontend deployment restarted successfully" diff --git a/backend-agent/.dockerignore b/backend-agent/.dockerignore index 51e3c24..74e7692 100644 --- a/backend-agent/.dockerignore +++ b/backend-agent/.dockerignore @@ -1,6 +1,8 @@ # Caches **/__pycache__ cache +**/.cache +**/.mypy_cache # Libraries venv* @@ -13,10 +15,28 @@ logger.log result_gptfuzz.txt prompt_success.txt +# Non-relevant files and folders +README.md +*.md +docs/ +examples/ +build/ +dist/ +*.egg-info/ + # Sensitive data -.env +.env* -# Development files +# Development files and folders .vscode .gitignore -README.md +.git +**/*.pyc +**/*.pyo +**/*.pyd +**/.pytest_cache +**/test* +**/Test* +**/.coverage +**/htmlcov +**/.tox diff --git a/backend-agent/Dockerfile b/backend-agent/Dockerfile index d265e73..51be45b 100644 --- a/backend-agent/Dockerfile +++ b/backend-agent/Dockerfile @@ -1,8 +1,9 @@ -FROM astral/uv:python3.11-trixie AS builder +FROM astral/uv:python3.11-trixie-slim AS builder # Install build dependencies including Rust for packages that need it RUN apt-get update && apt-get install -y \ build-essential \ + git \ curl \ pkg-config \ libssl-dev \ @@ -32,13 +33,14 @@ RUN . ~/.cargo/env && \ # ---------------------------------------- -FROM python:3.11-slim-trixie +FROM python:3.11-slim-trixie AS runtime # Install only runtime dependencies RUN apt-get update && apt-get install -y \ libssl3 \ libffi8 \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean WORKDIR /app