currently the android e2e job needs 4 device runners and we have only 5.
This means other android e2e jobs will just hold a jenkins executor till
the previous E2E job has finished.
https://ci.status.im/job/status-app/job/e2e/job/prs-android/
This was causing a massive queue of jobs in CI.
We can enable android e2e for PRS later when we are able to handle the
traffic, this can be done by increasing the number of runner devices,
modifying the tests to use less runners possibly just rely on the 1
runner OR just speeding up the tests themselves.
fixes :
```
0m=[94mqrc:/app/AppLayouts/Profile/views/EnsView.qml:4
[0m [33mtext[0m=[94m"module \"QtQml.StateMachine\" is not installed"[0m
```
and
```
E FATAL EXCEPTION: qtMainLoopThread
Process: app.status.mobile.debug, PID: 18150
java.lang.UnsatisfiedLinkError: dlopen failed: library "libStatus
Debug_arm64-v8a.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1097)
at java.lang.Runtime.loadLibrary0(Runtime.java:1019)
at java.lang.System.loadLibrary(System.java:1765)
at
org.qtproject.qt.android.QtLoader.loadLibraryHelper(QtLoader.java:486)
at
org.qtproject.qt.android.QtLoader.lambda$loadMainLibrary$0$org-qtproject-qt-android-QtLoader(QtLoader.java:535)
at
org.qtproject.qt.android.QtLoader$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at org.qtproject.qt.android.QtThread.lambda$run$0(QtThread.java:57)
at
org.qtproject.qt.android.QtThread$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
at java.lang.Thread.run(Thread.java:1563)
```
- re applies this commit :
https://github.com/status-im/status-app/commit/9381d0d06c2bee8e902be3bcf49e9680fe055b0d
- I also adjust the qml lint job to catch this kind of import failure in
CI :
```
[2026-02-03T07:06:17.215Z] Running: QML Lint (Mobile)
[2026-02-03T07:06:17.215Z] qmllint: /opt/qt/6.9.2/gcc_64/bin/qmllint
[2026-02-03T07:06:17.215Z] Qt modules:
/opt/qt/6.9.2/android_arm64_v8a/qml
[2026-02-03T07:06:17.215Z]
[2026-02-03T07:06:17.215Z] Checking 1200 files...
[2026-02-03T07:06:33.882Z]
[2026-02-03T07:06:33.882Z] ERRORS:
[2026-02-03T07:06:33.882Z]
/home/jenkins/workspace/status-app-android/13/ui/app/AppLayouts/Profile/views/EnsView.qml:4:1:
Failed to import QtQml.StateMachine. Are your import paths set up
properly?
```
- Add debug android variant for local builds.
- Fix container builds makefile target for running locally.
- Switch from compiling QT ourselves to relying on `aqtinstall`
- uses fewer qt modules
- adds cleanup stage to save space
- fix make translation target for macos
* refactor(e2e_appium): locators and app lifecycle management
- wallet locators
- app lifecycle management
- toast message handling (visibility checks and logging).
- saved addresses page
* refactor(e2e_appium): migrate to cloud reporting and enhance test assertions
- Replaced instances of LambdaTest reporting with Cloud reporting
- Assertion messages for clarity
- Updated test methods for toast handling
* chore(e2e_mobile): appium config for BrowserStack and Jenkins
* ci(e2e_mobile): add Jenkinsfile for mobile e2e tests
* ci(e2e_mobile): address review feeback
* ci(e2e_mobile): add E2E testing stage and update BrowserStack credentials
- Introduced a new E2E stage in the Android Jenkinsfile for PR builds.
- Updated BrowserStack credentials id
* ci(e2e_mobile): test result publishing
- Set PLATFORM environment variable for E2E Android tests.
- include package URL in the environment.
- build name to reflect PR number.
* ci(e2e_mobile): fix BrowserStack project name
* ci(e2e_mobile): update build type detection and improve stage names
- Renamed stages for clarity
- Refactored build type detection to use upstream job details.
* ci(e2e_mobile): Apply suggestions from code review for CHANGE_ID
Apply suggestions from code review for CHANGE_ID
Co-Authored-By: Jakub <jakub@status.im>
Otherwise we get:
+ J:Usersjenkinsworkspaceindows_x86_64_package_PR-19163_2/scripts/version.sh
J:/Users/jenkins/workspace/indows_x86_64_package_PR-19163_2@tmp/durable-1fe5af3a/script.sh.copy: line 1:
J:Usersjenkinsworkspaceindows_x86_64_package_PR-19163_2/scripts/version.sh: No such file or directory
Signed-off-by: Jakub Sokołowski <jakub@status.im>
- points to `fix-ios-signing-with-fastlane` branch of
`status-jenkins-lib` which provides development certs for PR builds and
distribution certs for release builds.
- adds nix flake to provide ruby dependencies for `fastlane`
- adds config for new build identifier for PRs: `app.status.mobile.pr`
- swaps testflight script with fastlane action
- adds job to build iOS in release
- updates status-go to use nim-sds from
https://github.com/logos-messaging/nim-sds/pull/41
* chore: enforce USE_SYSTEM_NIM=1 when building statusgo-shared-library
* chore: revert previous commit
* chore: add sds folders into STATUSGO_MAKE_PARAMS
* chore: adjust LIBSDS_LIBDIR in Makefile
* chore: add NIM_SDS_SOURCE_DIR in Jenkinsfiles
* ci: ios build NIM_SDS_SOURCE_DIR
* chore: more explicit nim-sds folder set in mobile Makefile
* chore: make sure sds cache is cleaned before pkg-macos in Makefile
This is needed to avoid compilation errors such as:
ld: building for 'macOS', but linking in object file
(/Users/ivan/.cache/nim/libsds_d/@m..@svendor@snimbus-build-system@svendor@sNim@slib@ssystem@sexceptions.nim.c.o)
built for 'iOS-simulator'
* chore: from previous commit properly make use of tab in Makefile
* chore: adjust lib path cp in mobile Makefile
* chore: mobile/Makefile hard code cp command libsds
* chore: for some unkown reason android and ios need different cp command
* chore: tackling previous Igor's comments
* chore: export NIM_SDS_SOURCE_DIR env var from Makefile
* chore: fix default NIM_SDS_SOURCE_DIR and set it ok to STATUSGO_MAKE_PARAMS
* chore: add NIM_SDS_SOURCE_DIR def in Jenkinsfile.tests-nim
* chore: update status-go
* fix; copy nimsds library on windows
* chore: update status-go to latest develop
---------
Co-authored-by: Ivan Folgueira Bande <ivansete@status.im>
- update status-jenkins-lib to v1.9.30 which provides iOS provisioning
profile and appstore certs.
- builds signed iOS app and pushes to testflight.
- updates testflight metadata with PR link and commit sha it was built
from
- adds `scripts/testflight-changelog.mjs` script used by CI to update PR
metadata.
- set `ITSAppUsesNonExemptEncryption` to `false`
- generate signed APK for PRs
- generate signed AAB for PRs targeting release branches
- updates status-jenkins-lib to v1.9.29 which provides keystore and
credentials for signing
- rename bundle id app.status.mobile
- nuke FOREGROUND_SERVICE permission
- automatically generate versionCode based on minutes since epoch
- nuke unused mobile/android/qt5 dir
- fix path to SecureAndroidAuthentication.java
- bump nim to 2.2.4
- update `status-desktop/mobile/scripts/EnvVariables.mk` to use `$QMAKE`
instead of `qmake`.
- add `QMAKE` env var in `ci/jenkinsfile.android`
- add `ci/Jenkinsfile.ios` pipeline job to build the app and provide the
artifact as part of Github PR.
- update the bundle id for mobile app to `im.status.app`