feat(ci): support version files for image tagging and build-args

This commit is contained in:
2026-01-07 13:28:19 +00:00
parent 526a488aba
commit 75c68f57ef

View File

@@ -89,11 +89,47 @@ jobs:
fi fi
echo "========================================" echo "========================================"
echo "Building ${IMAGE_NAME}:latest" echo "Building ${IMAGE_NAME}"
echo "========================================" echo "========================================"
docker build -t "${IMAGE_NAME}:latest" "${IMAGE_PATH}" # Check for version file (format: <NAME>_VERSION or VERSION)
docker push "${IMAGE_NAME}:latest" VERSION=""
BUILD_ARGS=""
echo "✅ Pushed ${IMAGE_NAME}:latest" # Look for specific version file (e.g., NETBOX_VERSION, TERRAFORM_VERSION)
for version_file in "$IMAGE_PATH"/*_VERSION "$IMAGE_PATH"/VERSION; do
if [ -f "$version_file" ]; then
VERSION=$(cat "$version_file" | tr -d '[:space:]')
VERSION_NAME=$(basename "$version_file" | sed 's/_VERSION$//')
if [ "$VERSION_NAME" = "VERSION" ]; then
# Generic VERSION file
echo "📌 Found VERSION file: $VERSION"
else
# Specific version file (e.g., NETBOX_VERSION)
echo "📌 Found ${VERSION_NAME}_VERSION file: $VERSION"
BUILD_ARGS="--build-arg ${VERSION_NAME}_VERSION=${VERSION}"
fi
break
fi
done
# Build the image
if [ -n "$BUILD_ARGS" ]; then
echo "🔧 Building with args: $BUILD_ARGS"
docker build $BUILD_ARGS -t "${IMAGE_NAME}:latest" "$IMAGE_PATH"
else
docker build -t "${IMAGE_NAME}:latest" "$IMAGE_PATH"
fi
# Push latest tag
docker push "${IMAGE_NAME}:latest"
echo "✅ Pushed ${IMAGE_NAME}:latest"
# Also tag and push with version if available
if [ -n "$VERSION" ]; then
docker tag "${IMAGE_NAME}:latest" "${IMAGE_NAME}:${VERSION}"
docker push "${IMAGE_NAME}:${VERSION}"
echo "✅ Pushed ${IMAGE_NAME}:${VERSION}"
fi
done done