Skip to content

Commit

Permalink
Android: Enhance manifest save, restore and diff with build variant
Browse files Browse the repository at this point in the history
  • Loading branch information
ParaskP7 committed Feb 21, 2025
1 parent 6a3263d commit 9cfd01c
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 16 deletions.
20 changes: 11 additions & 9 deletions bin/comment_with_manifest_diff
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
# trunk version and the PR version to identify changes caused by updates to the project.
#
# Usage:
# ./comment_with_manifest_diff <MODULE>
# ./comment_with_manifest_diff <MODULE> <BUILD_VARIANT>
#
# Parameters:
# <MODULE> : The project module whose manifest will be checked.
# <BUILD_VARIANT> : The build variant to inspect for manifest changes (e.g., "debug", "vanillaRelease).
#
# Steps:
# 1. It copies the manifest reports for both the trunk and PR versions.
Expand All @@ -20,20 +21,21 @@
# - The comment on the PR will include a detailed list of changes.
#
# Example:
# ./comment_with_manifest_diff app
# ./comment_with_manifest_diff app release
#
# This will analyze the `app` module and post the result to the PR.
# This will analyze the `app` module on `release` build variant and post the result to the PR.

set -euo pipefail

MODULE="${1:-}"
BUILD_VARIANT="${2:-}"

ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}"
TRUNK_MANIFEST_PATH="${ANDROID_MERGED_MANIFEST}/jalapenoDebug/processJalapenoDebugMainManifest/AndroidManifest.xml"
PR_MANIFEST_PATH="${MODULE}/build/intermediates/merged_manifest/jalapenoDebug/processJalapenoDebugMainManifest/AndroidManifest.xml"
ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}_${BUILD_VARIANT}"
TRUNK_MANIFEST_PATH="${ANDROID_MERGED_MANIFEST}/AndroidManifest.xml"
PR_MANIFEST_PATH="${MODULE}/build/intermediates/merged_manifest/${BUILD_VARIANT}/process${BUILD_VARIANT^}MainManifest/AndroidManifest.xml"

if [ -z "$MODULE" ]; then
echo "Not enough arguments provided. Usage: ./comment_with_manifest_diff <MODULE>"
if [ -z "$MODULE" ] || [ -z "$BUILD_VARIANT" ]; then
echo "Not enough arguments provided. Usage: ./comment_with_manifest_diff <MODULE> <BUILD_VARIANT>"
exit 1
fi

Expand All @@ -60,7 +62,7 @@ diff -u "$TRUNK_MANIFEST_FILE" "$PR_MANIFEST_FILE" > "$DIFF_MANIFEST_FILE" || tr
generate_manifest_comment_body() {
cat <<EOF
The following changes in \`$MODULE\` AndroidManifest.xml were detected (configuration ):
The following changes in \`$MODULE\` AndroidManifest.xml were detected (build variant: \`$BUILD_VARIANT\`):
\`\`\`diff
$(cat "$DIFF_MANIFEST_FILE")
Expand Down
7 changes: 4 additions & 3 deletions bin/restore_android_merged_manifest
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
#!/bin/bash -eu

MODULE=$1
BUILD_VARIANT=$2

echo "Current directory is: $(pwd)"
echo "Current directory contents are: $(ls -la)"

# The key is shared with `bin/save_android_merged_manifest`
ANDROID_MERGED_MANIFEST_KEY="${BUILDKITE_PIPELINE_SLUG}_ANDROID_MERGED_MANIFEST_${MODULE}"
ANDROID_MERGED_MANIFEST_KEY="${BUILDKITE_PIPELINE_SLUG}_ANDROID_MERGED_MANIFEST_${MODULE}_${BUILD_VARIANT}"

echo "Restoring Android merged manifest..."

# The directory is shared with `bin/save_android_merged_manifest`
ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}"
ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}_${BUILD_VARIANT}"
echo "ANDROID_MERGED_MANIFEST: ${ANDROID_MERGED_MANIFEST}"

mkdir -p "$ANDROID_MERGED_MANIFEST"
Expand All @@ -26,5 +27,5 @@ pushd "$MERGED_MANIFEST_BASE_FOLDER"
restore_cache "$ANDROID_MERGED_MANIFEST_KEY"
echo "Current directory is: $(pwd)"
echo "Current directory contents are: $(ls -la)"
echo "Directory contents of 'MODULE': $(ls -la "${MODULE}")"
echo "Directory contents of 'MODULE_BUILD_VARIANT': $(ls -la "${MODULE}"_"${BUILD_VARIANT}")"
popd
9 changes: 5 additions & 4 deletions bin/save_android_merged_manifest
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
#!/bin/bash -eu

MODULE=$1
BUILD_VARIANT=$2

echo "Current directory is: $(pwd)"
echo "Current directory contents are: $(ls -la)"

# The key is shared with `bin/restore_android_merged_manifest`
ANDROID_MERGED_MANIFEST_KEY="${BUILDKITE_PIPELINE_SLUG}_ANDROID_MERGED_MANIFEST_${MODULE}"
ANDROID_MERGED_MANIFEST_KEY="${BUILDKITE_PIPELINE_SLUG}_ANDROID_MERGED_MANIFEST_${MODULE}_${BUILD_VARIANT}"

echo "Saving Android merged manifest..."

# The directory is shared with `bin/restore_android_merged_manifest`
ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}"
ANDROID_MERGED_MANIFEST="${HOME}/.android/merged_manifest/${MODULE}_${BUILD_VARIANT}"
echo "ANDROID_MERGED_MANIFEST: ${ANDROID_MERGED_MANIFEST}"

mkdir -p "$ANDROID_MERGED_MANIFEST"

cp -r ./"${MODULE}"/build/intermediates/merged_manifest/. "$ANDROID_MERGED_MANIFEST" \
cp ./"${MODULE}"/build/intermediates/merged_manifest/"${BUILD_VARIANT}"/process"${BUILD_VARIANT^}"MainManifest/AndroidManifest.xml "$ANDROID_MERGED_MANIFEST" \

MERGED_MANIFEST_BASE_FOLDER=$(dirname "$ANDROID_MERGED_MANIFEST")
echo "MERGED_MANIFEST_BASE_FOLDER: ${MERGED_MANIFEST_BASE_FOLDER}"
Expand All @@ -27,6 +28,6 @@ echo "MERGED_MANIFEST_FOLDER_NAME: ${MERGED_MANIFEST_FOLDER_NAME}"
pushd "$MERGED_MANIFEST_BASE_FOLDER"
echo "Current directory is: $(pwd)"
echo "Current directory contents are: $(ls -la)"
echo "Directory contents of 'MODULE': $(ls -la "${MODULE}")"
echo "Directory contents of 'MODULE_BUILD_VARIANT': $(ls -la "${MODULE}"_"${BUILD_VARIANT}")"
save_cache "$MERGED_MANIFEST_FOLDER_NAME" "$ANDROID_MERGED_MANIFEST_KEY" --force
popd

0 comments on commit 9cfd01c

Please sign in to comment.