164 Commits
Author SHA1 Message Date
Anastasiya 0f49c7a9da feat(@ci): extend benchmarks job to support PRs and releases 2026-08-15 09:47:22 +03:00
Anastasiya b99af5c386 fix(keycard): make packaged simulator work on Linux and Windows 2026-08-13 10:41:26 +03:00
Siddarth Kumar addec76d72 chore: use java from status-im scoop bucket 2026-08-13 10:41:26 +03:00
Sale Djenic dde79aac96 feat(keycard): ship self-contained simulator in packages
Precompile at package time (JDK in CI image / nix) and bundle the runtime bits into the app,
resolved relative to the executable — downloaded builds run the simulator with just a JRE, no checkout.
2026-08-06 13:00:42 +02:00
Siddarth Kumar 74b1e11412 ci: allow to override status-go reference 2026-07-31 09:32:37 +05:30
jakub 68f5849792 fix(scripts): add explicit error handling for native commands
Our CI hosts use PowerShell 5.1 and 7.4 is required to use this setting:

  $PSNativeCommandUseErrorActionPreference = $true

So we have to explicitly check exit codes of native commands.
Without failure is silent, which is especially problematic in Ansible.

Also added check in Install-VC-BuildTools because it fails with exit
code 1 when Build Tools are already installed.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-07-24 16:13:43 +02:00
Alex Jbanca e400143790 poc(qml-dev): permission preflight + rename skill
- tools/ax preflight: verifies Accessibility + Screen Recording, triggers
  grant prompts, non-zero exit with instructions when missing
- storybook-agent.sh start: runs preflight (auto-builds CLI), aborts hard
- skill renamed qml-storybook-loop -> qml-dev; added permission protocol:
  ping the human and wait, continue degraded only after one explicit
  denial, persist the denial to memory and never re-ask
2026-07-15 16:42:16 +03:00
Alex Jbanca f67d6c3a1f poc: agent QML dev loop — Storybook + macOS accessibility
- tools/ax: Swift CLI to inspect/drive any app via the AX API (tree/find/
  read/press/set/click/type/screenshot); elements addressed by Qt's
  objectName-derived AXIdentifier
- scripts/storybook-agent.sh: start/status/stop lifecycle for a persistent
  Storybook harness launched directly on a page
- storybook/main.qml: fix -- page-from-command-line (currentPage initial
  property landed on ApplicationWindow instead of the Storybook item)
- .claude/skills/qml-storybook-loop: documented agent workflow

Validated end-to-end on SwapModalPage: objectName addressing, AXPress,
AXValue set (triggers QML bindings), and hot reload of production
SwapModal.qml (~4s edit-to-verified, no rebuild/restart).
2026-07-15 16:42:16 +03:00
Anastasiya 4068ddda5a chore(@ci): collect Windows system info in nightly benchmark push 2026-07-14 16:32:07 +03:00
Andrey Bocharnikov 20c74206b7 fix: coarse status-go cleanup and document platform sentinel maintenance
* Wipe vendor/status-go/build/ on platform switch instead of individual
libstatus binaries

doc: condense ADR 0003

fix comments
2026-07-03 15:33:46 +04:00
Andrey Bocharnikov aa2cd9a909 fix: unify nim-sds path and add platform sentinel for cross-platform builds
Use vendor/nim-sds as the default source for desktop builds. Add a
platform sentinel that clears shared qrcodegen, nim-sds, and libstatus
outputs when switching desktop/mobile or arch in the same tree.

Replace parse-time platform cleanup with an order-only Make target.
Drop ios/android branches from the root Makefile; mobile cleanup lives
in mobile/Makefile. Always delegate status-go mobile builds via FORCE
and copy libraries only on change.
2026-07-03 15:33:46 +04:00
Lukáš Tinkl ef2cb090ae chore(l10n): remove base Lokalise TS file, update README
- the l10n workflow using an external service is no longer used
- update the I18N.md readme file

Fixes #21334
2026-07-03 00:22:47 +02:00
Alexandru Jbanca dd74a3451d fix(seaqt): Fixing pkg target
It depends on VCINSTALLDIR
2026-06-29 21:41:48 +03:00
Alex Jbanca 160aae0e24 fix: llvm dependency 2026-06-29 21:41:48 +03:00
Alex Jbanca af309cddcd fix: clean-up 2026-06-29 21:41:48 +03:00
Alexandru Jbanca 7b161e8ee3 fix: Windows build 2026-06-29 21:41:48 +03:00
Sale Djenic 3bd3c4b7a1 refactor(new-keycard-approach): remove status-keycard-go submodule and update references to reference to status-keycard-qt library
- Deleted the status-keycard-go submodule from .gitmodules and Makefile.
- Updated config.nims to reference STATUSKEYCARD_QT_LIBDIR instead of STATUSKEYCARDGO_LIBDIR.
- Adjusted build scripts and feature flags to remove dependencies on status-keycard-go.
- The code aligned.
2026-06-22 13:48:45 +02:00
Siddarth Kumar b2e589b77d flatpak: init setup 2026-06-18 19:43:21 +05:30
Siddarth Kumar 17a3e4a853 refactor(linux): tidy AppDir assembly in init_app_dir.sh
Extract copy_native_libs/copy_system_libs/copy_qt_webengine helpers and
drive the Qt path from $QTDIR.
2026-06-18 17:40:38 +05:30
jakub a9c394c9c1 fix(scripts): call API to fetch bottle URL and hash
Using bottle info call does not return all systems, and passing --variations causes:

Error: Invalid usage: Cannot call #to_hash_with_variations on formulae loaded from the internal API

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-06-16 12:23:26 -04:00
Siddarth Kumar c53bd145b0 chore(ci): upgrade CI to use QT 6.11.0 2026-04-25 07:27:39 +05:30
Siddarth Kumar 86e08bbd3d chore(ci): nuke nwaku builds from pipeline 2026-03-24 18:09:16 +05:30
marko 702e4e5120 fix(ci): windows nightly benchmarks script args
Signed-off-by: markoburcul <marko@status.im>
2026-03-23 14:22:01 +01:00
marko f08b64133f fix(ci): adapt to the changes in benchmarks repo
Signed-off-by: markoburcul <marko@status.im>
2026-03-20 14:45:14 +01:00
Siddarth Kumar 7afb60d1b9 init: fdroid setup
- `mobile/Makefile` -> Added `apk-fdroid` build target, used by
`fdroid/build-app.sh`. F-Droid requires an unsigned APK without Google
Play services.

  - `mobile/android/qt6/build.gradle` -> Added F-Droid gradle build
flavor, used during `apk-fdroid` target. Separates F-Droid builds from
Play Store builds and no signing configuration since it's supposed to be
unsigned.

  - `mobile/scripts/buildApp.sh` -> Updated to copy F-Droid APK instead
of usual locations from Jenkins build.

  - `mobile/scripts/buildOpenSSL.sh` -> Moved from iOS dir, shared
between iOS and F-Droid builds. Reusing the OpenSSL build logic that was
previously iOS-only but is now needed for F-Droid's from-source
requirement.

  - `mobile/scripts/Common.mk` -> Updated path to `buildOpenSSL.sh`
which is no longer inside iOS dir.

  - `mobile/scripts/openssl-patch.diff` -> Moved from iOS dir, applied
by `buildOpenSSL.sh`, so that the patch is co-located with the script
that uses it.

  - `ci/Jenkinsfile.fdroid` -> Had to make a new pipeline script because
integrating this into `ci/Jenkinsfile.android` was causing issues with
the generated `AppImage` and steps had to be fully sequential, so I
figured it's good to separate them out.

  - `fdroid/entrypoint-fdroid.sh` -> Docker entrypoint, used by
`fdroid/Dockerfile`. Sets up the container user/permissions before the
F-Droid build starts.

  - `fdroid/Dockerfile` -> A minimalistic Docker image for the F-Droid
Jenkins build environment, used by `ci/Jenkinsfile.fdroid`. I didn't add
to existing Qt Android `Dockerfile` because this one only needs a
minimal environment with Docker-in-Docker to run the `fdroidserver` VM.

  - `fdroid/build-app.sh` -> Called by `fdroiddata` metadata build step.
Sets up Qt and Android NDK environment, detects `JAVA_HOME`, configures
`Go`/`Nim` env vars, and runs the `make` targets for the F-Droid APK.

  - `fdroid/build-openssl.sh` -> F-Droid requires OpenSSL to be built
from source rather than using prebuilt binaries.

  - `fdroid/build-qt-android.sh` -> F-Droid requires Qt to be built from
source; this handles the Android cross-compilation.

  - `fdroid/build-qt-host.sh` -> Qt's cross-compilation requires host
tools (`moc`, `rcc`, etc.) to be built first.

  - `fdroid/cleanup-binaries.sh` -> Removes binaries flagged by `fdroid`
scanner, called by `fdroiddata` metadata `prebuild` step. F-Droid's
scanner rejects repos containing prebuilt binaries in test/vendor
directories.

  - `fdroid/cleanup-fdroiddata.sh` -> Removes stale `fdroiddata` clones,
called by `ci/Jenkinsfile.fdroid`. Prevents disk space issues from
accumulating `fdroiddata` clones across builds.

  - `fdroid/fdroid-container-build.sh` -> Runs `fdroid build` inside
Docker container, called by `scripts/fdroid-local-build.sh`. Isolates
the build in a container to match F-Droid's official build environment.

  - `scripts/fdroid-local-build.sh` -> A handy script to build F-Droid
locally, also called by `ci/Jenkinsfile.fdroid`. Manages the full
lifecycle of cloning `fdroiddata`, launching the `fdroidserver`, and
extracting the output APK.

  - `fdroid/generate-keystore.sh` -> Generates a single-use keystore for
signing the F-Droid APK. Sourced by `buildApp.sh` to export signing
credentials into the build environment.

fixes: https://github.com/status-im/status-app/issues/19741
2026-03-14 20:54:15 +05:30
marko 0d58f8c3f0 fix(scripts): fix versions for scoop packages and use status bucket 2026-02-25 14:21:42 +01:00
marko 473dc3e13c feat(scripts): add setup required by status-go 2026-02-25 14:21:41 +01:00
Siddarth Kumar a7b15fb360 ci: fix dmg background with dmgbuild
fixes: https://github.com/status-im/status-app/issues/19432
2026-02-14 20:25:53 +05:30
Jonathan Rainville cec140de2b feat(qr): add new QR library SCodes to scan qr codes (#19811) 2026-02-13 09:21:18 -05:00
Siddarth Kumar 82f8881851 reapply docker file simplification for android QT
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?
```
2026-02-06 13:59:20 -05:00
jakub 926f390dcc fix(ci): fix CMake Homebrew installation
Currently the approach fails with:

Error: Homebrew requires formulae to be in a tap, rejecting:
  cmake.rb (/tmp/cmake.rb)

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-01-29 20:07:08 +01:00
jakub 8945f173ab fix(ci): hardcode PATH contents for Windows builds
Changes in ordering of PATHs have broken too many things in the past.

This way we also enforce existance of specific version folders which
will fail early instead of continuing and failing in obscure manner.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-01-29 10:12:53 +01:00
Siddarth Kumar de680d5c79 ci: run qmllint to catch errors 2026-01-28 17:23:51 +05:30
Mag.andjakub 12854858ae ci(e2e_mobile): add Jenkinsfile and config for e2e mobile tests (#19163)
* 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>
2026-01-21 16:38:25 +00:00
jakub 04f11c6d29 chore(ci): impreove getting version from script
Depends on:
https://github.com/status-im/status-jenkins-lib/pull/112

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2026-01-17 09:57:24 +01:00
marko 31abd1bd6c ci: add windows benchmark ci and script to push result
Referenced issue:
* https://github.com/status-im/infra-ci/issues/233
2025-12-29 14:06:45 +01:00
Siddarth Kumar 1a9708fe01 ios: create and sign separate bundle ID for PRs
- 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
2025-12-24 16:33:32 +04:00
Siddarth Kumar 482c9b967a chore(ci): use system nim everywhere
To fix windows build issues due to very long paths by
nimbus-build-system

- points status-go to bring in
https://github.com/status-im/status-go/pull/7185
- updates mac,windows host install scripts to include nim
- updates linux dockerfile to install nim
- updates linux docker image tag to use newer image
2025-12-21 16:14:07 +04:00
Jonathan Rainville 7a1455be96 chore: rename status-desktop to status-app
Adapts the docs and different mentions of the repo from status-desktop to status-app

Also adapts the docs to talk about the Status App and not just Status Dekstop. Adds links to the Mobile build too.
2025-12-10 11:36:43 -05:00
Igor SirotinandIvan Folgueira Bande 6e1235bee0 chore: status-go with nim-sds (#19402)
* 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>
2025-12-04 13:57:55 +00:00
jakub 196e55407f fix(ci): show more info on bottle fetch errors
Otherwise we just get non-descript stuff like:

jq: parse error: Invalid numeric literal at line 1, column 7

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-11-06 11:26:56 +01:00
Siddarth Kumar c7c3d589e9 ci: fix branch name var 2025-10-31 16:17:57 +04:00
Siddarth Kumar a1dd245159 ios: produce signed build
- 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`
2025-10-31 14:31:30 +04:00
Igor Sirotin f7b6e16aa8 feat: externally provided nwaku (#19124) 2025-10-30 14:06:58 +00:00
Lukáš Tinkl 75e867b7de fix(i18n): bundle the translations into resources
- simplify the process or deploying the translations by treating the QM
files just like any other resource, and compile/bundle them with the
binary
- remove manual copying of the QM files in Makefile and other scripts
- greatly simplify the LanguageService discovery, as the QM files are
now in a uniform prefix (`:/i18n`) on any platform
- because of the uniform prefix/location, the retranslation now happens
automatically by `QQmlApplicationEngine`, by just setting/getting the
`Qt.uiLanguage` property

Fixes #18914
2025-10-15 15:15:41 +02:00
Lukáš Tinkl cfaf6643e7 chore(i18n): port the base TS fixup script to go
- and run it as part of the standard `make compile-translations`
subtarget, in order to keep the base Lokalise TS file in sync with the
other TS files
- script ported from Python to go so that we don't have to introduce
another hard build time dependency
- include the re-generated TS files as well

Fixes #18934
2025-10-02 12:08:54 +02:00
Siddarth Kumar 87249766b6 ci: update macOS script for installing iOS QT 2025-09-23 13:17:27 +05:30
marko c0e8142087 chore(ci): upgrade QT to 6.9.2
Referenced issue:
* https://github.com/status-im/status-desktop/issues/18776
2025-09-18 17:36:28 +02:00
marko 1479704f2a chore(ci): upgrade platform scripts to install QT 6.9.2
Referenced issue:
* https://github.com/status-im/status-desktop/issues/18776
2025-09-18 17:36:28 +02:00
Lukáš Tinkl 85ca9fe1c1 chore(i18n): amend the Lokalise fixup script
- add a `<comment>` to help with Lokalise AI setting up the context
- update the base TS files, reflecting recent master changes
- fixup a wrong `qsTranslate` call; was meant to be a regular `qsTr()`
with a plural form
2025-09-16 19:06:34 -04:00