Commit Graph
144 Commits
Author SHA1 Message Date
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
Lukáš Tinkl 567c31f104 chore(Makefile): create targets to update and build translations
- create dedicated Makefile targets: `update-translations` and
`compile-translations` that extract/update/merge and compile the TS
files respectively
- these targets can then later be invoked externally by CI automation
- provide a small manual Python script that transforms the empty
`qml_base_en.ts` into a pre-filled `qml_base_lokalise_en.ts` for the
purpose of AI enabled translations on Lokalise
- add a sample Czech translation to test the changes (to be finished
later separately)
- update the i18n README

Fixes #18820
2025-09-16 13:48:38 +02:00
Siddarth Kumar 6d8d60183e ci: fix nwaku version in settings
Fixes this bug where App's version shows "-nwaku-experimental" even when
`USE_NWAKU` is not set to `true`

Fixes the name of the built binary to contain "experimental"

modify version script to force fetch tags and then describe.
2025-09-15 18:13:35 +05:30
Igor SirotinandSiddarth Kumar 639d042dcf ci: go 1.24 (#18830)
* chore: bump status-go

* ci: upgrade Go to 1.24

* ci: update golang archive checksum

* fix: version typo

* ci: bump docker images with go 1.24

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
2025-09-12 18:11:27 +01:00
Siddarth Kumar f5d90e5dc4 browser: enable sandbox and fix v8 snapshot
To fix Qt WebEngine errors like :
[0912/162517.794426:FATAL:v8_initializer.cc(625)] Error loading V8 startup snapshot file
and
Render process exited with code 1002 (abnormal exit)
2025-09-12 21:02:16 +05:30
jakub ac2ac73650 fix(ci): bump protobuf from 3.20.0 to 3.20.1
Otherwise installation using `scoop` fails with:

Couldn't find manifest for ''.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-09-10 12:43:46 +02:00
Patryk Osmaczko 67ede4ce69 chore: update translations
Default to `en` locale and update base .ts file.
2025-09-03 00:10:12 +02:00
Siddarth Kumar d092620b96 ci: init script for create-dmg
copied over from https://raw.githubusercontent.com/create-dmg/create-dmg/refs/heads/master/create-dmg
2025-08-22 12:16:03 +05:30
Siddarth Kumar d2af110293 ci: nuke vendors in cleanup stage 2025-08-14 12:19:07 -04:00
Siddarth Kumar 36f52232f0 ci: update binary name if built with nwaku 2025-08-12 18:45:11 +05:30
Siddarth Kumar c0d963e1c4 ci: copy nwaku's libwaku.so into App Image 2025-08-12 18:45:09 +05:30
Siddarth Kumar 2361cf95a9 ci: update linux scripts to include qthttpserver 2025-08-08 11:44:44 +02:00
Igor Sirotin e8aa72c931 chore_: remove fleets and mailservers management (#18521) 2025-08-07 16:34:01 +01:00
jakub 60fe049ddd fix(ci): add missing OpenSSL from Scoop on Windows
Fixes Windows runtime crash due to error:

could not load: (libcrypto-1_1-x64|libeay64)dll

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-08-04 16:48:35 +02:00
Alex Jbanca dd1a7cdbcd chore(pcre): Remove pcre dependency for desktop builds 2025-08-01 17:09:59 +03:00
jakub c5d2abbe3a fix(appimage): bundle dash shell for xdg-open wrapper
This fixes an error on NixOS when trying to Connect a dApp via Status Connector
which should open the Status Wallet Connector chrome plugin page but fails with:
```
/nix/store/1q9lw4r2mbap8rsr8cja46nap6wvrw2p-bash-interactive-5.2p37/bin/bash: symbol lookup error:
/nix/store/1q9lw4r2mbap8rsr8cja46nap6wvrw2p-bash-interactive-5.2p37/bin/bash: undefined symbol: rl_trim_arg_from_keyseq
```
Resolves:
https://github.com/status-im/status-desktop/issues/18451

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-07-29 15:19:05 +02:00
jakub 00c52d6be3 chore(ci): upgrade Node.js from 18 to 22
End-of-Life for Node.js 18 was on 30th of April, and the recommended
version to ugprade to is 22 according to this article:
https://nodejs.org/en/blog/announcements/node-18-eol-support

This upgrade should have no impact on usage of create-dmg tool.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-07-24 14:15:13 +02:00
Siddarth Kumar 90daccf3a2 ci: upgrade go to 1.23 2025-07-15 20:53:43 +05:30
Lukáš Tinkl f9fa27fb8f chore: update the i18n README and extract script
- drop obsolete translations
- remove references to source code lines from the TS files

Fixes #18294
2025-07-08 19:45:11 +02:00
marko 8a6a1bfde5 scripts: upgrade qt to 6.9.0 for all platforms
Referenced issue:
* https://github.com/status-im/status-desktop/issues/17639
2025-06-26 20:24:46 +05:30
Siddarth Kumar 17f3b83cac ci: upgrade to QT6 and Ubuntu 22.04
- `QT6` setup runs the newer ubuntu `22.04` linux image
- `QT6` setup also uses a newer `linuxdeployqt` from here https://github.com/probonopd/linuxdeployqt/releases/tag/continuous
- `E2E` tests were updated to work with QT `6.9.0`.
- introduce a `DummyCompatImports.qml` to fix runtime issues on `linux`.
- introduced `STATUSQ_SANITY_CHECKER_EXCLUDE_FILES ` to exclude `qml` files from sanity checker.
- unused `cpp` jobs have been deleted

related issue : https://github.com/status-im/status-desktop/issues/17639
2025-06-26 18:21:56 +05:30