From 001c8514b564efe6f7501c3407baa9c429a0ce5f Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 3 Jun 2026 16:55:00 +0200 Subject: [PATCH] fix(ci): violently purge buildx containers to avoid overlayfs corruption --- .gitea/workflows/deploy.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4ae0b78..c7bd7f4 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -158,22 +158,25 @@ jobs: run: | echo "Disk space before nuclear prune:" df -h - + # Massive cleanup of pre-installed runner software to free up ~5GB+ # These are standard on VM-based runners and often unnecessary sudo rm -rf /usr/share/dotnet || true sudo rm -rf /usr/local/lib/android || true sudo rm -rf /opt/ghc || true sudo rm -rf /opt/hostedtoolcache/CodeQL || true - + # Comprehensive Docker purge + docker buildx stop || true + docker buildx rm -a || true + docker rm -fv $(docker ps -aq --filter "ancestor=moby/buildkit") || true docker system prune -af --volumes docker builder prune -af docker buildx prune -af - + # Clean temp build artifacts rm -rf /tmp/docker-actions-toolkit-* || true - + echo "Disk space after nuclear prune:" df -h continue-on-error: true @@ -241,8 +244,6 @@ jobs: DIRECTUS_URL: ${{ needs.prepare.outputs.directus_url }} DIRECTUS_HOST: cms.${{ needs.prepare.outputs.traefik_host }} - - # Mail MAIL_HOST: ${{ secrets.SMTP_HOST || vars.SMTP_HOST }} MAIL_PORT: ${{ secrets.SMTP_PORT || vars.SMTP_PORT || '587' }} @@ -427,7 +428,7 @@ jobs: echo "Purging S3 cache for ${{ env.S3_PREFIX }} ..." rclone --config rclone.conf delete mintel-s3:${{ env.S3_BUCKET }}/${{ env.S3_PREFIX }}/cache/ --include "*" || true - + rm rclone.conf rclone-current-linux-amd64.deb - name: ๐Ÿงน Post-Deploy Cleanup (Runner) @@ -453,7 +454,7 @@ jobs: COUNT=0 MAX=24 URL="${{ needs.prepare.outputs.next_public_url }}" - + echo "Verifying $URL is responsive..." while [ $COUNT -lt $MAX ]; do STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$URL/" || echo "000") @@ -465,7 +466,7 @@ jobs: sleep 5 COUNT=$((COUNT + 1)) done - + if [ "$STATUS" != "200" ]; then echo "โŒ Site failed smoke test after 2 minutes! (Status: $STATUS)" exit 1 @@ -475,7 +476,7 @@ jobs: shell: sh run: | BASE_URL="${{ needs.prepare.outputs.next_public_url }}" - + echo "Verifying case study page..." STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/case-studies/klz-cables") if [ "$STATUS" != "200" ]; then @@ -483,7 +484,7 @@ jobs: exit 1 fi echo "โœ… Case study page UP" - + echo "Verifying breeze CSS (root path)..." CSS_PATH="/assets/klz-cables.com/wp-content/cache/breeze-minification/css/breeze_klz-cables-com-1-10895.css" STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL$CSS_PATH") @@ -492,7 +493,7 @@ jobs: exit 1 fi echo "โœ… Root asset path OK" - + echo "Verifying breeze CSS (relative path from case-study)..." REL_CSS_PATH="/case-studies/assets/klz-cables.com/wp-content/cache/breeze-minification/css/breeze_klz-cables-com-1-10895.css" STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL$REL_CSS_PATH")