mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-12 09:13:23 +00:00
fix(ci): unbreak iOS compile and the arm64 desktop smoke test
Two red checks on this branch, from two unrelated causes.
1. `test-quartz-ios` — AddressableAuthorRelayLoaderSubAssembler moved into
commonMain still calling `synchronized(lock)`. That resolves from
kotlin-stdlib-jvm with no import, so it compiles on Android/JVM and only
fails at `:commons:compileKotlinIosSimulatorArm64`. Swapped to
`KmpLock.withLock {}` (reentrant on every platform, and `withLock` is
inline so `commit()`'s early `return` still works).
The `verifyKmpPurity` gate missed it because it only forbade the
`kotlin.jvm.Synchronized` *annotation*, not the bare call. Added
`synchronized(` to the forbidden list in both :commons and :quartz so the
next one fails in seconds instead of at the iOS compile step.
2. `release-deb-launch (ubuntu-24.04-arm)` — pre-existing infra break, not
from this branch (same failure on other PRs since ~Aug 5).
libskiko-linux-arm64.so needs libEGL.so.1 and the runner has no libegl1,
so the app died at startup. create-release.yml already fixes this via
scripts/add-deb-libegl-dep.sh; the smoke test never adopted it. Added that
step, and switched the install from `dpkg -i` (which does not resolve
dependencies) to `apt-get install ./x.deb` so the declared libegl1 is
actually pulled in — this now exercises the same artifact release ships.
Verified: :commons:compileKotlinIosSimulatorArm64, both verifyKmpPurity gates
(and confirmed the new pattern fails when the bug is reintroduced),
:commons:jvmTest, :amethyst:testPlayDebugUnitTest for the assembler test, and
the .deb libegl mechanism end-to-end in an arm64 ubuntu:24.04 container.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
eaba40f2a6
commit
d3921cd7f5
@@ -92,13 +92,29 @@ jobs:
|
||||
chmod +x scripts/relax-deb-libicu.sh
|
||||
scripts/relax-deb-libicu.sh desktopApp/build/compose/binaries/main-release/deb/*.deb
|
||||
|
||||
# Mirrors the same step in create-release.yml so this job exercises the
|
||||
# exact .deb release ships. libskiko-linux-arm64.so has libEGL.so.1 in
|
||||
# DT_NEEDED and jpackage does not scan lib/app/ for Depends, so without
|
||||
# this the arm64 app dies at startup with
|
||||
# UnsatisfiedLinkError: libEGL.so.1: cannot open shared object file
|
||||
# See scripts/add-deb-libegl-dep.sh for the full rationale.
|
||||
- name: Add libegl1 dep to arm64 .deb
|
||||
run: |
|
||||
set -euo pipefail
|
||||
chmod +x scripts/add-deb-libegl-dep.sh
|
||||
scripts/add-deb-libegl-dep.sh desktopApp/build/compose/binaries/main-release/deb/*.deb
|
||||
|
||||
- name: Install .deb
|
||||
run: |
|
||||
# Installed via apt (not `dpkg -i`) so the .deb's declared Depends are
|
||||
# actually resolved — that is what pulls in libegl1 on the arm64
|
||||
# runner, which does not ship it preinstalled.
|
||||
#
|
||||
# jpackage's post-install script runs xdg-desktop-menu which fails
|
||||
# on CI runners ("No writable system menu directory"). The files are
|
||||
# extracted successfully; only the menu registration fails. Allow the
|
||||
# dpkg error, then verify the binary was actually installed.
|
||||
sudo dpkg -i desktopApp/build/compose/binaries/main-release/deb/*.deb || true
|
||||
# install error, then verify the binary was actually installed.
|
||||
sudo apt-get install -y ./desktopApp/build/compose/binaries/main-release/deb/*.deb || true
|
||||
echo "Installed files:"
|
||||
dpkg -L amethyst | head -30
|
||||
# Fail if the binary wasn't actually extracted
|
||||
|
||||
Reference in New Issue
Block a user