44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
DEVICE="${1:-komodo}"
|
||
|
|
WORK_DIR="${MONTANAOS_WORK:-$HOME/montanaos-build}"
|
||
|
|
MONTANAOS_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
|
|
|
||
|
|
LOCK_COMMIT="$(git -C "$MONTANAOS_ROOT" rev-parse HEAD)"
|
||
|
|
LOCK_SHORT="$(git -C "$MONTANAOS_ROOT" rev-parse --short=12 HEAD)"
|
||
|
|
SOURCE_DATE_EPOCH="$(git -C "$MONTANAOS_ROOT" log -1 --format=%ct HEAD)"
|
||
|
|
export SOURCE_DATE_EPOCH
|
||
|
|
|
||
|
|
if [[ -n "$(git -C "$MONTANAOS_ROOT" status --porcelain)" ]]; then
|
||
|
|
echo "ERROR: working tree dirty. Reproducible builds require clean tree."
|
||
|
|
echo "Either commit changes or stash before building a release."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd "$WORK_DIR/grapheneos"
|
||
|
|
|
||
|
|
unset USE_CCACHE
|
||
|
|
export USE_CCACHE=0
|
||
|
|
|
||
|
|
source build/envsetup.sh
|
||
|
|
lunch "${DEVICE}-cur-user"
|
||
|
|
|
||
|
|
m vendorbootimage vendorkernelbootimage
|
||
|
|
m target-files-package
|
||
|
|
|
||
|
|
OUT_DIR="out/target/product/$DEVICE"
|
||
|
|
ZIP_NAME="MontanaOS-${DEVICE}-${LOCK_SHORT}.zip"
|
||
|
|
|
||
|
|
if [[ -f "$OUT_DIR/$ZIP_NAME" ]]; then
|
||
|
|
echo
|
||
|
|
echo "Build complete: $OUT_DIR/$ZIP_NAME"
|
||
|
|
echo "MontanaOS commit: $LOCK_COMMIT"
|
||
|
|
echo "SOURCE_DATE_EPOCH: $SOURCE_DATE_EPOCH"
|
||
|
|
sha256sum "$OUT_DIR/$ZIP_NAME"
|
||
|
|
else
|
||
|
|
echo "ERROR: expected output $OUT_DIR/$ZIP_NAME not found"
|
||
|
|
ls "$OUT_DIR" | head
|
||
|
|
exit 1
|
||
|
|
fi
|