Summary: Builds up a file with checksums of all `build.gradle` files. Deliberately excludes the `gradle.properties` which changes all the time. The cache shouldn't require nuking except in some rare circumstances. Pull Request resolved: https://github.com/facebook/flipper/pull/1922 Test Plan: From 41 minutes down to 17: https://github.com/passy/flipper-1/actions/runs/561501374 Reviewed By: mweststrate Differential Revision: D26427242 Pulled By: passy fbshipit-source-id: ff1d7370d477c9d7b57c62082ec985108a5ba698
29 lines
668 B
Bash
Executable File
29 lines
668 B
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
RESULT_FILE=$1
|
|
|
|
if [ -f "$RESULT_FILE" ]; then
|
|
rm "$RESULT_FILE"
|
|
fi
|
|
touch "$RESULT_FILE"
|
|
|
|
checksum_file() {
|
|
openssl sha256 "$1" | awk '{print $2}'
|
|
}
|
|
|
|
FILES=()
|
|
while read -r -d ''; do
|
|
FILES+=("$REPLY")
|
|
done < <(find . -type f \( -name "build.gradle*" -o -name "gradle-wrapper.properties" \) -print0)
|
|
|
|
# Loop through files and append checksum to result file
|
|
for FILE in "${FILES[@]}"; do
|
|
checksum_file "$FILE" >> "$RESULT_FILE"
|
|
done
|
|
|
|
sort "$RESULT_FILE" -o "$RESULT_FILE"
|