diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 64dacb19..99d3eb64 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -32,6 +32,21 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + # bundleWebUi (a Gradle dep of preBuild) shells out to + # scripts/build-web-ui.sh, which runs `npm run build` in desktop/. That + # invokes electron-builder for ALL configured Linux targets + # (AppImage + deb + rpm + pacman), so the runner needs rpm + bsdtar + # even though Android doesn't consume the installers. PR #98 added + # pacman+rpm targets without updating this workflow; every Android CI + # run since 2026-05-20 has been red on bsdtar exit 127. + # libarchive-tools -> provides bsdtar (pacman target) + # rpm -> rpm target + - name: Install Linux build deps + # `apt-get update` prefix: the cached package index on ubuntu-latest + # often points to .deb versions that have rolled off the mirror, so + # a bare install hits HTTP 404 / exit 100. Refresh the index first. + run: sudo apt-get update && sudo apt-get install -y rpm libarchive-tools + - name: Run unit tests run: ./gradlew test diff --git a/.github/workflows/android-test-build.yml b/.github/workflows/android-test-build.yml index f13ce88a..296a1b95 100644 --- a/.github/workflows/android-test-build.yml +++ b/.github/workflows/android-test-build.yml @@ -26,6 +26,16 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 + # build-web-ui.sh runs `npm run build` in desktop/, which invokes + # electron-builder for all configured Linux targets. Pacman needs + # bsdtar (libarchive-tools); rpm target needs the rpm package. See + # android-ci.yml for the full backstory on the PR #98 regression. + - name: Install Linux build deps + # `apt-get update` prefix: the cached package index on ubuntu-latest + # often points to .deb versions that have rolled off the mirror, so + # a bare install hits HTTP 404 / exit 100. Refresh the index first. + run: sudo apt-get update && sudo apt-get install -y rpm libarchive-tools + # Build the full React UI so the APK has a working WebView. # bundleWebUi (Gradle preBuild dep) would do this too, but running # it explicitly here keeps this workflow's intent self-documenting. diff --git a/.github/workflows/desktop-ci.yml b/.github/workflows/desktop-ci.yml index fdc0d2f9..979f8143 100644 --- a/.github/workflows/desktop-ci.yml +++ b/.github/workflows/desktop-ci.yml @@ -27,5 +27,20 @@ jobs: - name: Run tests run: npm test + # Must run BEFORE the build — electron-builder's deb/rpm/pacman packagers + # run inside `npm run build` (see desktop/electron-builder.yml linux.target). + # PR #98 added rpm + pacman targets without updating CI, so every Desktop + # CI run since 2026-05-20 (commit 4679cc89) has been red on the same + # bsdtar-missing failure. Mirror desktop-release.yml's setup step: + # libarchive-tools -> provides bsdtar, required by the pacman target + # rpm -> required by the rpm target + - name: Install Linux build deps + # apt-get update prefix: the cached package index on ubuntu-latest + # frequently points to .deb versions that have already rolled off + # the mirror, so a bare `install` fails with HTTP 404 / exit 100. + # Refresh the index first. + run: sudo apt-get update && sudo apt-get install -y rpm libarchive-tools + working-directory: . + - name: Build run: npm run build diff --git a/.github/workflows/desktop-test-build.yml b/.github/workflows/desktop-test-build.yml index 0abb0a4e..6216b11f 100644 --- a/.github/workflows/desktop-test-build.yml +++ b/.github/workflows/desktop-test-build.yml @@ -39,6 +39,16 @@ jobs: - name: Run tests run: npm test + # Must run BEFORE the build — electron-builder's deb/rpm/pacman packagers + # run inside `npm run build`. See desktop-ci.yml for the PR #98 backstory. + - name: Install Linux build deps + if: runner.os == 'Linux' + # `apt-get update` prefix: the cached package index on ubuntu-latest + # often points to .deb versions that have rolled off the mirror, so + # a bare install hits HTTP 404 / exit 100. Refresh the index first. + run: sudo apt-get update && sudo apt-get install -y rpm libarchive-tools + working-directory: . + - name: Build run: npm run build