-
Notifications
You must be signed in to change notification settings - Fork 488
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
check size for the universal image (#979)
- Loading branch information
1 parent
3934e0f
commit 92bed91
Showing
4 changed files
with
72 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/bin/bash | ||
# 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" | ||
|
||
convert_gb_to_bytes() { | ||
local gb="$1" | ||
local bytes | ||
bytes=$(echo "scale=0; $gb * 1024^3" | bc) | ||
printf "%.0f\n" "$bytes" | ||
} | ||
|
||
# Check if bc is installed | ||
install_bc() { | ||
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 | ||
} | ||
|
||
check_image_size() { | ||
IMAGE="$1" | ||
THRESHOLD_IN_GB="$2" | ||
|
||
# call install_bc | ||
install_bc | ||
|
||
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" | ||
threshold=$(convert_gb_to_bytes "$THRESHOLD_IN_GB") | ||
# Retrieve the Docker image size | ||
echo -e "\nThreshold is $threshold bytes ie $THRESHOLD_IN_GB GB" | ||
# 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 $THRESHOLD_IN_GB gb" | ||
echo -e "\n❌ Image size check failed." | ||
else | ||
echo -e "\n✅ Passed!" | ||
fi | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,3 +26,4 @@ jobs: | |
uses: ./.github/actions/smoke-test | ||
with: | ||
image: universal | ||
threshold: 14 |