From 3677304991dd9663d2eec5ef7ee04ab52484adf0 Mon Sep 17 00:00:00 2001 From: zomborip Date: Wed, 26 Nov 2025 18:57:40 +0100 Subject: [PATCH] cicd --- .gitea/workflows/main.yml | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .gitea/workflows/main.yml diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml new file mode 100644 index 0000000..d1e2ce1 --- /dev/null +++ b/.gitea/workflows/main.yml @@ -0,0 +1,83 @@ +name: Build and Deploy Frontend + +on: + push: + branches: + - master + +jobs: + build-and-deploy-frontend: + runs-on: ubuntu-latest + + steps: + # Checkout + - name: Checkout + uses: actions/checkout@v4 + + # Docker smoke test + - name: Docker smoke test + run: docker ps -a + + # Docker login a Gitea registry-be + - name: Docker login + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" \ + | docker login git.petyi.eu -u "${{ secrets.REGISTRY_USER }}" --password-stdin + + # Docker build (prod, nginx-es image) + - name: Docker build (frontend prod) + run: | + docker build \ + -t git.petyi.eu/szakdolgozat/frontend:latest \ + --build-arg VITE_BACKEND_API_HOST="http://k8s.petyi.eu" \ + --build-arg VITE_BACKEND_API_PORT="30080" \ + . + + # Docker push + - name: Docker push + run: | + docker push git.petyi.eu/szakdolgozat/frontend:latest + + # Kubeconfig beállítása (service accountos kubeconfig) + - name: Set up kubeconfig + env: + KUBECONFIG: /tmp/kubeconfig + run: | + echo "${{ secrets.KUBECONFIG_B64 }}" | base64 -d > "$KUBECONFIG" + echo "==== kubeconfig contexts ====" + kubectl config get-contexts || true + + # Kubernetes smoke test + - name: Kubernetes smoke test + env: + KUBECONFIG: /tmp/kubeconfig + run: | + kubectl cluster-info + kubectl -n szakdolgozat get pods + + # Rollout restart a frontend deploymentre + - name: Rollout restart frontend deployment + env: + KUBECONFIG: /tmp/kubeconfig + run: | + kubectl -n szakdolgozat rollout restart deployment/telefonkonyv-frontend + kubectl -n szakdolgozat rollout status deployment/telefonkonyv-frontend --timeout=60s + + # Frontend URL kiírása + Step Summary + - name: Show Frontend URL + env: + KUBECONFIG: /tmp/kubeconfig + run: | + FRONTEND_NODEPORT=$(kubectl -n szakdolgozat get svc telefonkonyv-frontend -o jsonpath='{.spec.ports[0].nodePort}') + URL="http://k8s.petyi.eu:${FRONTEND_NODEPORT}" + echo "Frontend URL: ${URL}" + + # Ha a runner biztosítja a step summary-t (Gitea act_runner szokta), + # akkor írjuk bele oda is: + if [ -n "${GITHUB_STEP_SUMMARY}" ]; then + { + echo "### Frontend deployment" + echo "" + echo "- URL: ${URL}" + } >> "${GITHUB_STEP_SUMMARY}" + fi