name: Build and Push API on: push: branches: - master jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 # Smoke test – csak ellenőrizzük, hogy látjuk a docker socketet - name: Docker smoke test run: docker ps -a # docker login – itt majd a repó Secretjeit fogjuk használni - name: Docker login run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.petyi.eu -u "${{ secrets.REGISTRY_USER }}" --password-stdin # docker build – egyszerűen latest taggel - name: Docker build run: | docker build -t git.petyi.eu/szakdolgozat/api:latest . # docker push – ugyanaz az image - name: Docker push run: | docker push git.petyi.eu/szakdolgozat/api:latest # Kubeconfig átemelése - name: Set up kubeconfig env: KUBECONFIG: /tmp/kubeconfig run: | echo "${{ secrets.KUBECONFIG_B64 }}" | base64 -d > "$KUBECONFIG" echo "==== KubeConfig ====" cat "$KUBECONFIG" # Kubeconfig Smoke test - name: Kubernetes smoke test env: KUBECONFIG: /tmp/kubeconfig run: | kubectl get nodes -o wide # Rollout - name: Rollout restart API deployment env: KUBECONFIG: /tmp/kubeconfig run: | kubectl rollout restart deployment/telefonkonyv-api -n szakdolgozat # API elérési URL kiírása - name: Show API URL env: KUBECONFIG: /tmp/kubeconfig run: | NODE_PORT=$(kubectl get svc telefonkonyv-api -n szakdolgozat -o jsonpath='{.spec.ports[0].nodePort}') echo "API elérhető (NodePort): http://k8s.petyi.eu:${NODE_PORT}"