Fix deploy: filter out non-app packages from build matrix
Turbo's change detection includes shared packages like @homelab/db, which don't have Dockerfiles. Filter to only apps with a Dockerfile to prevent 'path not found' errors during docker build.
This commit is contained in:
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- name: Determine changed apps
|
- name: Determine changed apps
|
||||||
id: changes
|
id: changes
|
||||||
run: |
|
run: |
|
||||||
APPS=$(pnpm turbo build --filter='...[origin/main]' --dry-run=json | jq -r '[.packages[] | select(startswith("@homelab/")) | sub("@homelab/";"") ] | join(",")')
|
APPS=$(pnpm turbo build --filter='...[origin/main]' --dry-run=json | jq -r '[.packages[] | select(startswith("@homelab/")) | sub("@homelab/";"") ] | join(",")' | tr ',' '\n' | while read app; do [ -f "apps/${app}/Dockerfile" ] && echo "$app"; done | paste -sd, -)
|
||||||
echo "apps=$APPS" >> "$GITHUB_OUTPUT"
|
echo "apps=$APPS" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Build and push images
|
- name: Build and push images
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
APPS="$INPUT"
|
APPS="$INPUT"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
APPS=$(pnpm turbo build --filter='...[HEAD~1]' --dry-run=json | jq -r '[.packages[] | select(startswith("@homelab/")) | sub("@homelab/";"") ] | join(",")')
|
APPS=$(pnpm turbo build --filter='...[HEAD~1]' --dry-run=json | jq -r '[.packages[] | select(startswith("@homelab/")) | sub("@homelab/";"") ] | join(",")' | tr ',' '\n' | while read app; do [ -f "apps/${app}/Dockerfile" ] && echo "$app"; done | paste -sd, -)
|
||||||
fi
|
fi
|
||||||
echo "apps=$APPS" >> "$GITHUB_OUTPUT"
|
echo "apps=$APPS" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user