aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/ensure-reproducible-builds.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ensure-reproducible-builds.sh')
-rwxr-xr-xcontrib/ensure-reproducible-builds.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/ensure-reproducible-builds.sh b/contrib/ensure-reproducible-builds.sh
new file mode 100755
index 0000000..f9b880a
--- /dev/null
+++ b/contrib/ensure-reproducible-builds.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env zsh
+set -e
+echo "First Build"
+make mozaddons
+# Zips are unstable with hashes
+cd artifacts
+ZIPNAME="$(jq -r '.name + "-" + .version + "-unsigned.zip"' ../manifest.json)"
+unzip "$ZIPNAME"
+rm "$ZIPNAME"
+HASH1="$( (find . -type f -print0 | sort -z | xargs -0 sha512sum;
+ find . \( -type f -o -type d \) -print0 | sort -z | \
+ xargs -0 stat -c '%n %a') \
+ | sha512sum)"
+cd ..
+echo "Got Hash $HASH1"
+sleep 1;
+echo "Second Build"
+make mozaddons
+# Zips are unstable with hashes
+cd artifacts
+unzip "$ZIPNAME"
+rm "$ZIPNAME"
+HASH2="$( (find . -type f -print0 | sort -z | xargs -0 sha512sum;
+ find . \( -type f -o -type d \) -print0 | sort -z | \
+ xargs -0 stat -c '%n %a') \
+ | sha512sum)"
+cd ..
+echo "Got Hash $HASH2"
+if [[ "$HASH1" != "$HASH2" ]]; then echo -e "\x1b[0;31mNot reproducible!\x1b[0m"; fi; \ No newline at end of file