Pack the build label, if present, into the deploy archive

This can be used to quickly determine version information without needing to
start a server or unpack multiple levels of zip files.

PiperOrigin-RevId: 249288992
diff --git a/src/package-bazel.sh b/src/package-bazel.sh
index 34feba3..632b133 100755
--- a/src/package-bazel.sh
+++ b/src/package-bazel.sh
@@ -35,11 +35,23 @@
 
 cp $* ${PACKAGE_DIR}
 
-# Re"compress" the deploy jar. Saves ~10% of final binary size.
+# Unpack the deploy jar for postprocessing and for "re-compressing" to save
+# ~10% of final binary size.
 unzip -q -d recompress ${DEPLOY_JAR}
 cd recompress
+
+# Zero out timestamps and sort the entries to ensure determinism.
 find . -type f -print0 | xargs -0 touch -t 198001010000.00
 find . -type f | sort | zip -q0DX@ ../deploy-uncompressed.jar
+
+# While we're in the deploy jar, grab the label and pack it into the final
+# packaged distribution zip where it can be used to quickly determine version
+# info.
+bazel_label="$(\
+  (grep '^build.label=' build-data.properties | cut -d'=' -f2- | tr -d '\n') \
+      || echo -n 'no_version')"
+echo -n "${bazel_label:-no_version}" > "${PACKAGE_DIR}/build-label.txt"
+
 cd ..
 
 # The server jar needs to be the first binary we extract. This is how the Bazel