ptth/build_and_minimize.bash

32 lines
931 B
Bash
Executable File

#!/usr/bin/env bash
# Use: ./build-and-minimize.bash
# Makes a docker image, saves it as .tar, unpacks the tar, removes
# the base Debian layer, and repacks it so I can upload to servers a little
# faster.
set -euo pipefail
TEMP_GIBBERISH="ptth_build_L6KLMVS6"
TEMP_TAR="$TEMP_GIBBERISH/ptth.tar"
UPLOADABLE_TAR="$PWD/ptth_latest.tar.gz"
GIT_COMMITISH=$(git rev-parse main)
# This is magic and will need to be updated whenever we update the
# Debian layer.
BOTTOM_LAYER="7900806df64cc5adea32b37d8484569598376cac1c66f0810c01b7ad2458e9fd"
rm -rf "$TEMP_GIBBERISH"
mkdir -p "$TEMP_GIBBERISH/ptth"
git archive --format=tar "$GIT_COMMITISH" | sudo docker build -t ptth:latest --build-arg "git_version=$GIT_COMMITISH" -
sudo docker image save ptth:latest | pv > "$TEMP_TAR"
tar -C "$TEMP_GIBBERISH/ptth" -xf "$TEMP_TAR"
rm -rf "$TEMP_GIBBERISH/ptth/$BOTTOM_LAYER"
pushd "$TEMP_GIBBERISH/ptth"
tar -czf "$UPLOADABLE_TAR" .
popd