From b86bc5b798519d1ee44e8086f4278400d7bbcf21 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 22 Jul 2026 16:25:23 +0000 Subject: [PATCH] ci: replace abandoned android-test-report-action with mikepenz/action-junit-report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit asadmansr/android-test-report-action@v1.2.0 is a Docker action whose Dockerfile is `FROM ubuntu:18.04` + `apt-get install python` (Python 2). Ubuntu 18.04 (bionic) is end-of-life, so its apt archives are now unreliable and Python 2 has no installation candidate — the image rebuild runs on every CI invocation, takes ~8 minutes, and has started hard-failing the test-and-build-android job (`E: Package 'python' has no installation candidate`). The action was last released in 2020 and is unmaintained, and it was referenced by a movable tag rather than a pinned commit. Swap it for mikepenz/action-junit-report (actively maintained, Apache-2.0, JS action — no Docker rebuild), pinned to the v6.4.2 commit SHA. Use annotate_only so it needs no `checks: write` permission and keeps working on pull requests from forks; fail_on_failure keeps the job red when a unit test fails, matching the previous step's behavior. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01HMtpSuyr8FBh2ZQ22BV4ZP --- .github/workflows/build.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6a42fec122..cbb3d82f62 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -231,9 +231,23 @@ jobs: name: Android Lint Reports path: amethyst/build/reports/lint-results-*.html + # Publishes the JUnit XML produced by the unit-test tasks above as inline + # annotations plus a job summary. Replaces asadmansr/android-test-report-action, + # which was abandoned (last release 2020) and rebuilt an EOL Ubuntu 18.04 + + # Python 2 Docker image on every run — bionic's apt archives have since gone + # unreliable and broke this job. Pinned to a commit SHA (not the movable + # v6.4.2 tag) to close the supply-chain hole. annotate_only avoids needing + # `checks: write`, so it keeps working on pull requests from forks (where the + # GITHUB_TOKEN is read-only). fail_on_failure preserves the old step's + # behavior of marking the job red when a test fails. - name: Android Test Report - uses: asadmansr/android-test-report-action@v1.2.0 + uses: mikepenz/action-junit-report@d9f48fc87bc235f7e214acf696ca5abc0a986f16 # v6.4.2 if: always() + with: + report_paths: '**/build/test-results/**/TEST-*.xml' + annotate_only: true + detailed_summary: true + fail_on_failure: true - name: Upload Test Results uses: actions/upload-artifact@v7