feat: build base before other
All checks were successful
Build / build (pull_request) Successful in 13m53s
All checks were successful
Build / build (pull_request) Successful in 13m53s
- ensure base images are build first
This commit is contained in:
parent
63afa81440
commit
ccf7eba6b5
17
Makefile
17
Makefile
@ -20,16 +20,27 @@ DIRS := $(shell find $(IMAGES_PATH) -mindepth 3 -maxdepth 3 -type d | sed 's|$(I
|
||||
default: clean
|
||||
./ci/build.sh
|
||||
|
||||
# Make all images
|
||||
# Separate base images from others
|
||||
BASE_IMAGES = $(filter %/base,$(DIRS))
|
||||
OTHER_IMAGES = $(filter-out %/base,$(DIRS))
|
||||
|
||||
# Make all images, ensuring base images build first
|
||||
all:
|
||||
@for dir in $(DIRS); do \
|
||||
@for dir in $(BASE_IMAGES); do \
|
||||
$(MAKE) $$dir; \
|
||||
done
|
||||
@for dir in $(OTHER_IMAGES); do \
|
||||
$(MAKE) $$dir; \
|
||||
done
|
||||
|
||||
|
||||
# List all directories
|
||||
list:
|
||||
@echo "Images:"
|
||||
@for dir in $(DIRS); do \
|
||||
@for dir in $(BASE_IMAGES); do \
|
||||
echo " '$$dir'"; \
|
||||
done
|
||||
@for dir in $(OTHER_IMAGES); do \
|
||||
echo " '$$dir'"; \
|
||||
done
|
||||
|
||||
|
||||
17
ci/build.sh
17
ci/build.sh
@ -20,9 +20,20 @@ if [ -n "$images_changes" ]; then
|
||||
echo "Changes detected in images/. Running specific 'make' commands..."
|
||||
|
||||
# Extract unique paths for `make` commands
|
||||
export TARGETS=$(echo "$images_changes" | sed -E 's|images/||; s|/[^/]+$||' | sort -u)
|
||||
echo $TARGETS
|
||||
for target in $TARGETS; do
|
||||
TARGETS=$(echo "$images_changes" | sed -E 's|images/||; s|/[^/]+$||' | sort -u)
|
||||
|
||||
# Prioritize base images first
|
||||
BASE_TARGETS=$(echo "$TARGETS" | grep '/base$' || true)
|
||||
OTHER_TARGETS=$(echo "$TARGETS" | grep -v '/base$' || true)
|
||||
|
||||
# Build base images first
|
||||
for target in $BASE_TARGETS; do
|
||||
echo "Running 'make $target' (base image first)..."
|
||||
make "$target"
|
||||
done
|
||||
|
||||
# Then build other images
|
||||
for target in $OTHER_TARGETS; do
|
||||
echo "Running 'make $target'..."
|
||||
make "$target"
|
||||
done
|
||||
|
||||
Loading…
Reference in New Issue
Block a user