-
Notifications
You must be signed in to change notification settings - Fork 487
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fb5ddfa
commit 7bfefab
Showing
4 changed files
with
90 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,75 @@ | ||
#!/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" | ||
INSTALL_FLAG=1 | ||
|
||
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() { | ||
echo "in install_bc function.." | ||
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 | ||
else | ||
INSTALL_FLAG=1 | ||
fi | ||
} | ||
|
||
# Uninstall bc if it was installed temporarily | ||
uninstall_bc() { | ||
echo "in uninstall_bc function..." | ||
if [[ $(dpkg-query -l bc | grep -c '^ii ') -eq 1 && "$INSTALL_FLAG" -eq 0 ]]; then | ||
echo "Removing bc..." | ||
sudo apt-get purge -y bc | ||
fi | ||
} | ||
|
||
check_image_size() { | ||
IMAGE="$1" | ||
THRESHOLD_IN_GB="$2" | ||
INSTALL_FLAG=0 | ||
|
||
# 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=$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 $THRESHOLD_IN_GB gb" | ||
echo -e "\n❌ Image size check failed." | ||
else | ||
echo -e "\n✅ Passed!" | ||
fi | ||
|
||
# call uninstall_bc | ||
uninstall_bc | ||
} |
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 |