packer-images/ci/build.sh
Ben Vincent 44e1ecc84e
All checks were successful
Deploy / build (push) Successful in 4m11s
feat: add htoprc for incus containers (#14)
- htop shows offline cpus with lxd
- change htop to show cpu average (instead of all)
- add network/disk io

Reviewed-on: https://git.query.consul/unkin/packer-images/pulls/14
2025-04-26 19:39:23 +10:00

46 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Check for changes in images/ folder and the builds/ folder
if [ "$(git branch --show-current)" = "master" ]; then
builds_changes=$(git diff --name-only HEAD^...master | grep -E '^builds/')
images_changes=$(git diff --name-only HEAD^...master | grep -E '^images/')
else
builds_changes=$(git diff --name-only master | grep -E '^builds/')
images_changes=$(git diff --name-only master | grep -E '^images/')
fi
# Run `make all` if there are changes in builds/
if [ -n "$builds_changes" ]; then
echo "Changes detected in builds/. Running 'make all'..."
make all && exit 0 || exit 1
fi
# Run specific `make` commands for each changed file in images/
if [ -n "$images_changes" ]; then
echo "Changes detected in images/. Running specific 'make' commands..."
# Extract unique image targets (keep only up to 3 directory levels)
TARGETS=$(echo "$images_changes" | sed -E 's|^images/([^/]+/[^/]+/[^/]+).*|\1|' | 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
fi
# If no changes, output a message
if [ -z "$builds_changes" ] && [ -z "$images_changes" ]; then
echo "No relevant changes detected."
fi