The Override status-go ref stage ran before Deps. `make update` calls
nimbus-build-system's `update-common`, which runs `git submodule update
--init --recursive` and `git submodule foreach --recursive 'git reset
--hard'`, resetting vendor/status-go to the pinned pointer and discarding
the override. Every status-go PR check therefore built and E2E-tested the
submodule pointer instead of the PR.
Jenkinsfile.ios and Jenkinsfile.android have no `make update` between the
override and the build, so they were already correct and are unchanged.
Behind the compile-time USE_SIMULATED_KEYCARD flag (off by default, so
production is unaffected), the app drives a real Status Keycard applet
running in jcardsim instead of a physical reader — enabling keycard e2e
and manual testing without hardware.
- Bump status-keycard-qt (SimulatedChannelBackend + test-only KeycardTest*
C API) and nim-keycard-go (matching bindings), both gated by the flag.
- Add KeycardTestController (Nim) and the KeycardSimulatorController window
to start the simulator and create/insert/remove empty or seed-loaded cards.
- Wire USE_SIMULATED_KEYCARD through Makefile and CI, with a per-mode
nimcache so toggling the flag rebuilds cleanly.
Closes#20305
- 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.
Accessing env.WORKSPACE_TMP in parameters section gives null value.
To avoid issue we need to set it in the environment section.
We also set USERPROFILE for windows builds to fix shared location
of nimcache under user home directory.
This might be the fix we need for Windows build failures on release CI
caused by shared C:\Users\jenkins\nimcache folder.
x86_64-w64-mingw32/bin/ld.exe:
C:\Users\jenkins\nimcache\koch_d\@mlib@sstd@sprivate@swin_setenv.nim.c.o:@mlib@sstd@sprivate@swin_setenv.nim.c:
(.rdata$.refptr.__imp__environ[.refptr.__imp__environ]+0x0): undefined reference to `__imp__environ'
collect2.exe: error: ld returned 1 exit status
Signed-off-by: Jakub Sokołowski <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
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
* 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
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.
Fixes workspace checkout issues by disabling submodule checkout in Jenkins job and adding git submodule checkout after cleanup stage.
CI hosts would occasionally end up in a dirty state and each PR job would checkout git submodules during checkout phase. Ideally cleanup phase should run before checkout because most of the PR issues happen during checkout phase.
Some errors looked like this :
```
> git submodule update --init --recursive vendor/nim-taskpools # timeout=10
ERROR: Checkout failed
hudson.plugins.git.GitException: Command "git submodule update --init --recursive mobile/vendors/openssl" returned status code 1:
stdout: Current branch master is up to date.
Submodule path 'mobile/vendors/openssl/gost-engine': rebased into 'ede3886cc5507c2ba000ab9b057f198da03e8766'
stderr: error: The following untracked working tree files would be overwritten by checkout:
.github/PULL_REQUEST_TEMPLATE
BUILD
BUILD.generated.bzl
BUILD.generated_tests.bzl
CMakeLists.txt
LICENSE
WORKSPACE
crypto_test_data.cc
Please move or remove them before you switch branches.
Aborting
fatal: Unable to checkout 'f1c75347daa2ea81a941e953f2263e0a4d970c8d' in submodule path 'mobile/vendors/openssl/cloudflare-quiche/quiche/deps/boringssl'
fatal: Failed to recurse into submodule path 'mobile/vendors/openssl/cloudflare-quiche'
fatal: Failed to recurse into submodule path 'mobile/vendors/openssl'
```
This also means we have to remove this setting from each job and won't have to remember to add it when making new jobs.
<img width="1332" height="680" alt="Screenshot 2025-09-09 at 5 12 39 PM" src="https://github.com/user-attachments/assets/33633b89-6ccb-457e-847d-d7034ca35be9" />
- `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