This is an automated email from the ASF dual-hosted git repository. ppkarwasz pushed a commit to branch feat/simplify-github-actions in repository https://gitbox.apache.org/repos/asf/logging-log4j-samples.git
commit 75736ef83752e8ef524adc9e5287a6248d6e54ff Author: Piotr P. Karwasz <[email protected]> AuthorDate: Sat Jul 25 12:30:37 2026 +0200 Replace manual Android emulator setup with android-emulator-runner The `ReactiveCircus/android-emulator-runner` action is now allow-listed in the ASF organization, so we can use it instead of managing the AVD and emulator lifecycle by hand. Third-party actions must be pinned by hash, so the Dependabot ignore rule for minor and patch updates is narrowed to `actions/*`, which are pinned to major version tags. Assisted-By: Claude Fable 5 <[email protected]> --- .github/dependabot.yaml | 5 ++- .github/workflows/gradle-reusable-test.yaml | 63 ++++------------------------- 2 files changed, 11 insertions(+), 57 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index a03e9c6..1289f95 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -62,9 +62,10 @@ updates: interval: weekly cooldown: default-days: 7 - # Actions are pinned to major version tags, so only major updates are relevant + # `actions/*` are pinned to major version tags, so only major updates are relevant. + # Other actions are pinned by hash and receive all updates. ignore: - - dependency-name: "*" + - dependency-name: "actions/*" update-types: - "version-update:semver-minor" - "version-update:semver-patch" diff --git a/.github/workflows/gradle-reusable-test.yaml b/.github/workflows/gradle-reusable-test.yaml index 58722fd..1e26b72 100644 --- a/.github/workflows/gradle-reusable-test.yaml +++ b/.github/workflows/gradle-reusable-test.yaml @@ -72,62 +72,15 @@ jobs: sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - - name: Create AVD Device - id: avd - shell: bash - run: | - # Debug environment variables - printenv | grep '^ANDROID\|^HOME' | sort - - # Set `ANDROID_USER_HOME` since `emulator` and `avdmanager` use different definitions: - # * `avdmanager` uses `$XDG_CONFIG_HOME/.android` with a fallback to `$HOME/.android`: - # https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:common/src/main/java/com/android/prefs/AbstractAndroidLocations.kt - # * `emulator` uses `HOME/.android` - export ANDROID_USER_HOME="$HOME/.android" - echo "ANDROID_USER_HOME=$ANDROID_USER_HOME" >> $GITHUB_ENV - - # List installed and available packages - $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --list - # Download images - echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager \ - --install "system-images;android-31;default;x86_64" \ - emulator platform-tools - # Create device - $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd \ - --name generic-api-31-device \ - --device "5.4in FWVGA" \ - --package "system-images;android-31;default;x86_64" - $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager list avds - # Run emulator - $ANDROID_HOME/emulator/emulator \ - -no-audio -no-window \ - -avd generic-api-31-device & - # Enabled the cleanup job - echo EMULATOR_STARTED=true >> $GITHUB_ENV - # Wait for device to go online - # It might take up to 5 minutes - for i in {1..300}; do - # Don't stop the script if `adb` fails - boot_completed=$($ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed 2> /dev/null || echo "0") - if [ "${boot_completed}" = "1" ]; then break; fi - sleep 1 - done - - name: Test log4j-samples-android - shell: bash + uses: ReactiveCircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # 2.38.0 env: LOG4J_VERSION: ${{ inputs.log4j-version }} LOG4J_REPOSITORY_URL: ${{ inputs.log4j-repository-url }} - run: | - ./gradlew \ - :app:build :app:connectedCheck - - - name: Remove AVD Device - if: ${{ always() && env.EMULATOR_STARTED == 'true' }} - shell: bash - run: | - # Kill the emulator - $ANDROID_HOME/platform-tools/adb -s emulator-5554 emu kill - # Delete the device - $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager delete avd \ - --name generic-api-31-device + with: + api-level: 31 + # `x86` (the default) is not available for API level 31 + arch: x86_64 + script: | + ./gradlew \ + :app:build :app:connectedCheck
