name: Harita Build ve Deploy run-name: ${{ gitea.actor }} Harita Build ve Deploy 🚀 on: [push] jobs: build-and-deploy: runs-on: ubuntu-latest # KRİTİK: DOCKER KOMUTUNUN YOLUNU GÖSTEREN AYAR env: DOCKER_HOST: tcp://localhost:2375 DOCKER_TLS_CERTDIR: "" # Sertifika kontrolünü kapatır steps: - name: Kodu Çek (Checkout) uses: actions/checkout@v3 # ----------------------------------------------------------------- # CI KISMI # ----------------------------------------------------------------- - name: Docker Buildx Kurulumu uses: docker/setup-buildx-action@v3 - name: Docker Login (Gitea Registry) uses: docker/login-action@v3 with: registry: git.konstantiniyye.studio username: gitea_admin password: ${{ secrets.REGISTRY_TOKEN }} # PUSH ADIMI: Digest'i çıktı olarak alıyoruz - name: Docker Build ve Push id: docker_build uses: docker/build-push-action@v5 with: context: . push: true tags: git.konstantiniyye.studio/gitea_admin/dogu:latest cache-from: type=gha cache-to: type=gha,mode=max # ----------------------------------------------------------------- # CD KISMI (Final - TLS Kontrolü Atlandı) # ----------------------------------------------------------------- - name: Kubectl Binary Kurulumu run: | curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ - name: Kubernetes'e Deploy Et ve Güncelle run: | # 1. Kubeconfig içeriğini dosyaya yazar echo "${{ secrets.KUBE_CONFIG }}" > /tmp/kubeconfig.yaml # 2. Yeni imaj Digest'ini alır NEW_IMAGE_DIGEST="git.konstantiniyye.studio/gitea_admin/dogu@${{ steps.docker_build.outputs.digest }}" # 3. TLS kontrolünü atlayarak Deployment'ı günceller (Sizin Kubeconfig'inizdeki ayarı kullanır) kubectl set image deployment/dogu-haritasi web=${NEW_IMAGE_DIGEST} \ --kubeconfig=/tmp/kubeconfig.yaml -n default \ --insecure-skip-tls-verify # <--- Gerekli TLS atlama bayrağı kubectl rollout restart deployment/dogu-haritasi \ --kubeconfig=/tmp/kubeconfig.yaml -n default \ --insecure-skip-tls-verify