From b7e7a200a05408a30a48ded0cb96bfc048d6d388 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 21 Jan 2026 14:06:47 +0100 Subject: [PATCH] deploy --- .gitea/workflows/deploy.yml | 75 +++++++++++++++++++++++++++---------- 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index e19db83..cd79e3b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -36,17 +36,20 @@ jobs: # --- Build image --- - name: Build image run: | + echo "Starting Docker build..." docker build \ --pull \ - --build-arg NEXT_PUBLIC_UMAMI_WEBSITE_ID=${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }} \ - --build-arg NEXT_PUBLIC_UMAMI_SCRIPT_URL=${{ secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL }} \ - --build-arg NEXT_PUBLIC_SENTRY_DSN=${{ secrets.SENTRY_DSN }} \ - -t registry.infra.mintel.me/mintel/klz-cables.com:latest . + -t registry.infra.mintel.me/mintel/mb-grid-solutions:latest . + echo "Docker build completed successfully" + echo "Built image:" + docker images registry.infra.mintel.me/mintel/mb-grid-solutions:latest --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedSince}}" # --- Push image --- - name: Push image run: | - docker push registry.infra.mintel.me/mintel/klz-cables.com:latest + echo "Starting Docker push..." + docker push registry.infra.mintel.me/mintel/mb-grid-solutions:latest + echo "Docker push completed successfully" # --- SSH setup --- - name: Setup SSH @@ -59,10 +62,13 @@ jobs: # --- Sync files --- - name: Sync files to server run: | + echo "Starting file sync to server..." + echo "Syncing docker-compose.yaml to alpha.mintel.me..." # Use tar to bundle files and send them via SSH in a single connection - tar czf - docker-compose.yml $([ -d ./varnish ] && echo varnish) | \ + tar czf - docker-compose.yaml | \ ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o IPQoS=0x00 deploy@alpha.mintel.me \ - "mkdir -p /home/deploy/sites/klz-cables.com/ && tar xzf - -C /home/deploy/sites/klz-cables.com/" + "mkdir -p /home/deploy/sites/mb-grid-solutions.com/ && tar xzf - -C /home/deploy/sites/mb-grid-solutions.com/ && echo 'Files synced successfully' && ls -la /home/deploy/sites/mb-grid-solutions.com/" + echo "File sync completed" # --- Deploy --- - name: Deploy on server @@ -70,27 +76,58 @@ jobs: REGISTRY_USER: ${{ secrets.REGISTRY_USER }} REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }} run: | + echo "Starting deployment on server..." ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o IPQoS=0x00 deploy@alpha.mintel.me " set -e - echo 'Logging in to registry on server...' + echo '=== Logging in to registry on server ===' echo '$REGISTRY_PASS' | docker login registry.infra.mintel.me -u '$REGISTRY_USER' --password-stdin + echo 'Registry login successful' - cd /home/deploy/sites/klz-cables.com + cd /home/deploy/sites/mb-grid-solutions.com - echo 'Creating .env if needed...' - echo 'SENTRY_DSN=${{ secrets.SENTRY_DSN }}' > .env + echo '' + echo '=== Checking current container status ===' + docker compose ps app || echo 'No running containers found' - echo 'Pulling latest image...' - docker compose pull app || echo 'Pull failed - continuing anyway...' + echo '' + echo '=== Checking current image ===' + docker images registry.infra.mintel.me/mintel/mb-grid-solutions:latest --format 'table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedSince}}' || echo 'No local image found' - echo 'Force recreating and restarting app container...' - docker compose up -d --force-recreate --no-deps app + echo '' + echo '=== Pulling latest image ===' + docker compose pull app + echo 'Image pull completed' - echo 'Pruning old images (keep last 24h)...' + echo '' + echo '=== Checking pulled image ===' + docker images registry.infra.mintel.me/mintel/mb-grid-solutions:latest --format 'table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.CreatedSince}}' + + echo '' + echo '=== Force recreating and restarting app container ===' + docker compose up -d --force-recreate app + + echo '' + echo '=== Waiting for container to be healthy (10 seconds) ===' + sleep 10 + + echo '' + echo '=== Checking container status after deployment ===' + docker compose ps app + + echo '' + echo '=== Checking container logs (last 30 lines) ===' + docker compose logs --tail=30 app + + echo '' + echo '=== Pruning old images (keep last 24h) ===' docker image prune -f --filter 'until=24h' - echo 'Deployment finished. Checking status...' + echo '' + echo '=== Final status check ===' docker compose ps app - docker compose logs --tail=20 app - " \ No newline at end of file + + echo '' + echo '=== Deployment completed successfully ===' + " + echo "Deployment process finished" \ No newline at end of file