@@ -42,18 +42,39 @@ jobs:
4242 CHANGED_FILES : ${{ steps.file_changes.outputs.all }}
4343 run : |
4444 echo "$CHANGED_FILES"
45- for FILE in $CHANGED_FILES; do
45+ ALLOWED_IMAGES=(
46+ diffusers-pytorch-cpu
47+ diffusers-pytorch-cuda
48+ diffusers-pytorch-xformers-cuda
49+ diffusers-pytorch-minimum-cuda
50+ diffusers-doc-builder
51+ )
52+
53+ declare -A IMAGES_TO_BUILD=()
54+
55+ for FILE in $CHANGED_FILES; do
4656 # skip anything that isn't still on disk
47- if [[ ! -f "$FILE" ]]; then
57+ if [[ ! -e "$FILE" ]]; then
4858 echo "Skipping removed file $FILE"
4959 continue
50- fi
51- if [[ "$FILE" == docker/*Dockerfile ]]; then
52- DOCKER_PATH="${FILE%/Dockerfile}"
53- DOCKER_TAG=$(basename "$DOCKER_PATH")
54- echo "Building Docker image for $DOCKER_TAG"
55- docker build -t "$DOCKER_TAG" "$DOCKER_PATH"
5660 fi
61+
62+ for IMAGE in "${ALLOWED_IMAGES[@]}"; do
63+ if [[ "$FILE" == docker/${IMAGE}/* ]]; then
64+ IMAGES_TO_BUILD["$IMAGE"]=1
65+ fi
66+ done
67+ done
68+
69+ if [[ ${#IMAGES_TO_BUILD[@]} -eq 0 ]]; then
70+ echo "No relevant Docker changes detected."
71+ exit 0
72+ fi
73+
74+ for IMAGE in "${!IMAGES_TO_BUILD[@]}"; do
75+ DOCKER_PATH="docker/${IMAGE}"
76+ echo "Building Docker image for $IMAGE"
77+ docker build -t "$IMAGE" "$DOCKER_PATH"
5778 done
5879 if : steps.file_changes.outputs.all != ''
5980
0 commit comments