feat(ci): support version files for image tagging and build-args
This commit is contained in:
@@ -89,11 +89,47 @@ jobs:
|
||||
fi
|
||||
|
||||
echo "========================================"
|
||||
echo "Building ${IMAGE_NAME}:latest"
|
||||
echo "Building ${IMAGE_NAME}"
|
||||
echo "========================================"
|
||||
|
||||
docker build -t "${IMAGE_NAME}:latest" "${IMAGE_PATH}"
|
||||
docker push "${IMAGE_NAME}:latest"
|
||||
# Check for version file (format: <NAME>_VERSION or VERSION)
|
||||
VERSION=""
|
||||
BUILD_ARGS=""
|
||||
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user