From 634b850a892bbe98a6c7929a2852ba0ada07e3b0 Mon Sep 17 00:00:00 2001 From: EvanChal Date: Sun, 25 Jan 2026 22:41:28 +0100 Subject: [PATCH] fix(ci/cd) --- .gitea/workflows/deploy-prod.yml | 92 ++++++-------------------------- 1 file changed, 16 insertions(+), 76 deletions(-) diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index 9b81075..ca85369 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -11,91 +11,31 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + run: | + git clone --depth 1 --branch prod https://${{ secrets.REGISTRY_USERNAME }}:${{ secrets.REGISTRY_TOKEN }}@git.local.evan.casa/evan/lediscord.git . - name: Force IPv4 for DNS run: | echo 'precedence ::ffff:0:0/96 100' | sudo tee -a /etc/gai.conf - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Gitea Container Registry (with retry) + - name: Login to Registry run: | + echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin + + - name: Build and push backend + run: | + docker build -t ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-backend ./backend for i in 1 2 3 4 5; do - echo "🔐 Login attempt $i..." - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin && break || sleep 5 + docker push ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-backend && break || sleep 10 done - - name: Build backend image - uses: docker/build-push-action@v4 - with: - context: ./backend - file: ./backend/Dockerfile - push: false - load: true - tags: | - ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-backend - ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:latest-backend - cache-from: type=registry,ref=${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-backend - cache-to: type=inline - - - name: Push backend image (with retry) + - name: Build and push frontend run: | - push_with_retry() { - local image=$1 - for i in 1 2 3 4 5; do - echo "📤 Push attempt $i for $image..." - if docker push "$image"; then - echo "✅ Successfully pushed $image" - return 0 - fi - echo "⚠️ Push failed, waiting 10s..." - sleep 10 - done - echo "❌ Failed to push $image after 5 attempts" - return 1 - } - - push_with_retry "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-backend" - push_with_retry "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:latest-backend" + docker build -t ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-frontend ./frontend + for i in 1 2 3 4 5; do + docker push ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-frontend && break || sleep 10 + done - - name: Build frontend image - uses: docker/build-push-action@v4 - with: - context: ./frontend - file: ./frontend/Dockerfile - push: false - load: true - tags: | - ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-frontend - ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:latest-frontend - cache-from: type=registry,ref=${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-frontend - cache-to: type=inline - - - name: Push frontend image (with retry) + - name: Done run: | - push_with_retry() { - local image=$1 - for i in 1 2 3 4 5; do - echo "📤 Push attempt $i for $image..." - if docker push "$image"; then - echo "✅ Successfully pushed $image" - return 0 - fi - echo "⚠️ Push failed, waiting 10s..." - sleep 10 - done - echo "❌ Failed to push $image after 5 attempts" - return 1 - } - - push_with_retry "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:prod-frontend" - push_with_retry "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/lediscord:latest-frontend" - - - name: Deploy to Nomad - if: success() - run: | - echo "🚀 Deployment ready!" - echo "Run on your server:" - echo " nomad job run -force lediscord.nomad" \ No newline at end of file + echo "🚀 Images pushed! Run: nomad job run -force lediscord.nomad" \ No newline at end of file