Files
agnos-builder/scripts/analyze-agnos-rootfs.sh
T
Andrei Radulescu 4e04bbc343 agnos rootfs statistics in CI (#291)
* agnos rootfs statistics in CI

* rebuild

* wip

* minimal stats

* agnos stats in PR comment

* just the folders

* just stats

* raw image is now just image

* fix printing stats when no [upload]

* this is nicer [upload]
2024-09-03 21:35:40 -07:00

36 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null && pwd)"
cd $DIR
BUILD_DIR="$DIR/build"
ROOTFS_DIR="$BUILD_DIR/agnos-rootfs"
ROOTFS_IMAGE="$BUILD_DIR/system.img"
# Setup mount container for macOS and CI support (namespace.so)
docker build -f $DIR/Dockerfile.builder -t agnos-mount $DIR > /dev/null 2>&1
MOUNT_CONTAINER_ID=$(docker run -d --privileged -v $DIR:$DIR agnos-mount)
exec() {
docker exec $MOUNT_CONTAINER_ID "$@"
}
# Cleanup container on exit
trap "docker container rm -f $MOUNT_CONTAINER_ID > /dev/null" EXIT
# Mount filesystem
exec mount "$ROOTFS_IMAGE" "$ROOTFS_DIR"
# Stats
# echo "Total size:"
exec bash -c "du -sh \"$ROOTFS_DIR\" | sed 's|$ROOTFS_DIR|/|'"
# echo "Python env size:"
exec bash -c "du -sh -t 150M \"$ROOTFS_DIR\"/usr/local/* | sort -rh | sed 's|$ROOTFS_DIR||'"
# echo "Lib size:"
exec bash -c "du -sh -t 150M \"$ROOTFS_DIR\"/usr/lib/* | sort -rh | sed 's|$ROOTFS_DIR||'"
# echo "Others size:"
exec bash -c "find \"$ROOTFS_DIR/usr\" -mindepth 1 -maxdepth 1 -type d ! -path \"$ROOTFS_DIR/usr/local\" ! -path \"$ROOTFS_DIR/usr/lib\" -exec du -sh -t 150M {} + | sort -rh | sed 's|$ROOTFS_DIR||'"
# Unmount image
exec umount -l "$ROOTFS_DIR"