Skip to content

Commit

Permalink
check size for the universal image
Browse files Browse the repository at this point in the history
  • Loading branch information
prathameshzarkar9 committed Mar 4, 2024
1 parent 3f7f89a commit 8d583c1
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .github/actions/smoke-test/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,11 @@ docker images

# Clean up
docker rm -f $(docker container ls -f "label=${id_label}" -q)

# Checking size of universal image

if [ $IMAGE == "test-universal" ]; then
chmod -R 777 $(pwd)/src/$IMAGE/check-size.sh
cd $(pwd)/src/$IMAGE/
sudo ./check-size.sh $IMAGE
fi
4 changes: 4 additions & 0 deletions src/test-universal/.devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "universal",
"image": "mcr.microsoft.com/devcontainers/universal:dev-linux"
}
55 changes: 55 additions & 0 deletions src/test-universal/check-size.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash
IMAGE="$1"

# Function to handle errors
handle_error() {
local exit_code=$?
local line_number=$1
local command=$2
echo "Error occurred at line $line_number with exit code $exit_code in command $command"
exit $exit_code
}
trap 'handle_error $LINENO ${BASH_COMMAND%% *}' ERR
echo "This is line $LINENO"
# Check if bc is installed
if ! command -v bc &> /dev/null; then
echo "bc is not installed. Installing..."
# Install bc using apt-get (for Debian-based systems)
sudo apt-get update
sudo apt-get install -y bc
fi

convert_gb_to_bytes() {
local gb="$1"
local bytes
bytes=$(echo "scale=0; $gb * 1024^3" | bc)
printf "%.0f\n" "$bytes"
}
CONTAINER_ID=$(docker ps -q --filter "label=test-container=$IMAGE")
# Find the image ID of the container
IMAGE_ID=$(docker inspect --format='{{.Image}}' "$CONTAINER_ID")
# Find the size of the image
IMAGE_SIZE=$(docker image inspect --format='{{.Size}}' "$IMAGE_ID")
# Output the size
echo "Size of the image $IMAGE_ID: $IMAGE_SIZE bytes"
# Define the threshold size (in GB)
gb_value=12.5
threshold=$(convert_gb_to_bytes "$gb_value")
# Retrieve the Docker image size
echo -e "\nThreshold=$threshold"
# Remove the 'MB' from the size string and convert to an integer
image_size=${IMAGE_SIZE%bytes}
image_size=${image_size//.}
# Check if the image size is above the threshold
echo -e "\n🧪 Checking image size of $IMAGE :"
if [ -n $image_size ] && [ $image_size -gt $threshold ]; then
echo -e "\nImage size exceeds the threshold of $gb_value gb"
echo -e "\n❌ Image size check failed."
else
echo -e "\n✅ Passed!"
fi
# Uninstall bc if it was installed temporarily
if [[ $(dpkg-query -l bc | grep -c '^ii ') -eq 1 ]]; then
echo "Removing bc..."
sudo apt-get purge -y bc
fi
4 changes: 4 additions & 0 deletions src/test-universal/test-project/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
cd $(dirname "$0")

echo -e "\nTest file executed"

0 comments on commit 8d583c1

Please sign in to comment.