From 349bd8f961298d7278694b4e67cf1986067106cb Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Fri, 10 Apr 2026 05:43:43 +0200 Subject: [PATCH] perf(woodpecker): add Docker layer caching for faster builds --- .woodpecker.yml | 26 ++++++++++++++++++++------ frontend.log | 6 ++++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 3878508..0d52bc4 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -11,22 +11,27 @@ steps: #!/bin/bash set -e - # Get changed files from last commit CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD || echo "") - # Check if relevant files changed (src, package.json, Dockerfile, etc.) + # Skip if only docs changed + if echo "$CHANGED_FILES" | grep -qE "^\.github/|^\.woodpecker|\.md$"; then + if ! echo "$CHANGED_FILES" | grep -qE "^(src/|package\.json|Dockerfile|vite\.config)"; then + echo "⏭️ Only docs changed, skipping" + exit 78 + fi + fi + RELEVANT_CHANGED=false if echo "$CHANGED_FILES" | grep -qE "^(src/|package\.json|package-lock\.json|Dockerfile|vite\.config|tsconfig|public/)"; then RELEVANT_CHANGED=true - echo "✅ Frontend code changed - will build" + echo "✅ Frontend code changed" fi - # Exit with code 78 to skip subsequent steps if no changes if [ "$RELEVANT_CHANGED" = "true" ]; then - echo "🚀 Will build frontend" + echo "🚀 Building frontend" exit 0 else - echo "⏭️ Skipping frontend - no relevant changes" + echo "⏭️ Skipping frontend" exit 78 fi @@ -45,3 +50,12 @@ steps: password: from_secret: GHCR_TOKEN platforms: linux/amd64 + # Enable layer caching + cache_from: ghcr.io/traceworks2023/nxtgauge-frontend-solid:cache + cache_to: ghcr.io/traceworks2023/nxtgauge-frontend-solid:cache + # Faster builds with BuildKit + buildkit_config: | + [worker.oci] + enabled = true + gc = true + gckeepstorage = 10000000000 # 10GB cache diff --git a/frontend.log b/frontend.log index d8893cd..046db89 100644 --- a/frontend.log +++ b/frontend.log @@ -18,8 +18,8 @@ vinxi starting dev server 5:26:46 AM [vite] (ssr) page reload .woodpecker.yml 5:33:56 AM [vite] (ssr) page reload .woodpecker.yml 5:33:56 AM [vite] (ssr) page reload .woodpecker.yml -/app.css -3:28:19 AM [vite] (ssr) page reload vinxi/routes +5:42:24 AM [vite] (ssr) page reload .woodpecker.yml +outes 3:30:32 AM [vite] (client) hmr update /src/app.tsx, /src/app.css 3:30:32 AM [vite] (ssr) page reload vinxi/routes 3:31:20 AM [vite] (client) hmr update /src/app.tsx, /src/app.css @@ -36,3 +36,5 @@ vinxi starting dev server 5:33:56 AM [vite] (client) page reload .woodpecker.yml 5:33:56 AM [vite] (ssr) page reload .woodpecker.yml 5:33:56 AM [vite] (client) page reload .woodpecker.yml +5:42:24 AM [vite] (ssr) page reload .woodpecker.yml +5:42:24 AM [vite] (client) page reload .woodpecker.yml