perf(woodpecker): add Docker layer caching for faster builds
This commit is contained in:
parent
cc53e7d43e
commit
349bd8f961
2 changed files with 24 additions and 8 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue