Commit Graph
101 Commits
Author SHA1 Message Date
vedran 50e12af8b5 ci(@e2e): dynamic waku fleet ports with scanner
Replace static port mapping with ephemeral Docker ports and a
scanner script that discovers host-mapped ports at runtime,
generating the fleet config dynamically. This removes the need
for a lock on Linux (parallel E2E runs per agent). Windows
keeps the lock due to GUI/Squish constraints.
2026-08-19 10:33:35 +02:00
Anastasiya 71a8208458 chore(@ci): allow launching keycard tests in manual jobs for linux and windows 2026-08-07 16:06:15 +03:00
Siddarth Kumar a52c325580 fix(ci): add user in container to docker group at runtime
To fix errors like these that happen on newer Ubuntu 24.04

  [2026-08-05T07:43:07.967Z] + docker compose -p e2e-fleet -f
docker-compose.waku.yml up -d

  [2026-08-05T07:43:07.968Z] permission denied while trying to connect
to the docker API at unix:///var/run/docker.sock

  script returned exit code 1
2026-08-05 13:41:21 +05:30
Anastasiya 59927250c5 chore(@ci): update artifacts paths 2026-07-17 21:19:48 +03:00
Siddarth Kumar 3db8873f8e ci: bump jenkins lib for klipy api key 2026-07-05 17:35:58 +05:30
Anastasiya bf03eda806 chore(@ci): do not select benchmark tests on linux 2026-06-24 17:29:34 +03:00
Anton Iakimov 6d67163980 ci: keep less upstream jobs artifacts 2026-06-23 13:00:14 +03:00
Siddarth Kumar a4fc11fe6b chore(ci): upgrade squish to 9.2.2 2026-04-25 07:27:48 +05:30
vedran 3c144ee693 fix(@e2e): use fixed compose project name and move fleet cleanup inside lock
Concurrent PR builds on the same agent create separate workspaces
(prs, prs@2, prs@3) each with a different compose project name,
causing port collisions even with the lock in place.

Fix by using `-p e2e-fleet` for all compose commands so every build
manages the same set of containers, and moving fleet teardown into
a try/finally block inside the lock to prevent race conditions with
post.always cleanup.
2026-04-23 17:13:14 +02:00
vedran 1172abac21 fix(@e2e): add lock to prevent port collision between concurrent E2E runs 2026-04-20 22:25:04 +02:00
Anastasiya 0d22878ee9 fix(@e2e): better configuration to use local fleet for local tests development 2026-04-17 18:54:37 +03:00
VedranandAnastasiya 271bcd014f chore(@e2e): use local waku fleet for linux E2E tests (#20215)
* chore(@e2e): use local waku fleet for E2E tests

Start local waku nodes via docker-compose before running E2E tests
and configure the app to use them instead of status.prod. This avoids
skewing production metrics, adding unnecessary load to prod hosts,
and generating noise in prod storage DBs.

- https://github.com/status-im/status-app/issues/20126

- https://github.com/status-im/status-go//tree/feat/fleet-override

* fix(@e2e): use host networking for local waku nodes

Switch docker-compose to network_mode:host so waku nodes
bind directly to localhost. Fixes ENR multiaddr containing
Docker internal hostnames/IPs unreachable by the app.

- Remove dns4-domain-name (caused Docker hostname in ENR)
- Use /ip4/127.0.0.1 for staticnode references
- Separate discv5 UDP ports (9000/9001
- Enable REST API for proper healthchecks
- Update fleet config JSON with correct DNS ENRs and store addr

* chore(@e2e): remove status community link from tests

---------

Co-authored-by: Anastasiya <anastasija.ig@gmail.com>
2026-04-14 14:49:26 +02:00
Siddarth Kumar e4e83fa97b ci: point to unify-credentials branch in jenkins lib
- use newer function to sign
2026-02-21 21:29:38 +05:30
Anastasiya 0d590c8621 chore(@ci): remove home page flag 2026-02-03 18:54:49 +01:00
jakub 7efb365288 chore(ci): fix finding version on Windows platform
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>
2026-01-19 20:08:14 +01: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
Siddarth Kumar 0fdd9fda2d ci: fix android signing
- brings in status-jenkins-lib@v1.9.36
- use gradle build types for PR and Release.
- signing config moved to gradle
- simplify build App script
2026-01-12 19:27:43 +04:00
Siddarth Kumar 316ad2d92f ci: bring in jenkins lib from fix-testflight-uploads branch 2025-12-25 15:51:46 +04: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
Anastasiya 04c2cd8b60 chore(@ci): add env var to keep home tab active in the app 2025-12-17 14:13:50 +01:00
Siddarth Kumar dae83f3d72 fix: CI jobs to find artefacts after repo rename
Otherwise they end up with artefacts that contain UNKOWN in the name
2025-12-11 12:01:52 +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
jakub b29d71e298 fix(ci): explicitly remove workspace tmp directory
Currently the cleanWs() function does not remove @tmp dirs:

- https://github.com/jenkinsci/ws-cleanup-plugin/pull/36
- https://issues.jenkins.io/browse/JENKINS-41805

So we have to explicitly remove them ourselves.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-11-27 16:11:52 +01:00
jakub 5fbadab663 fix(ci): replace gitParameter with string parameter
Recent upgrade of Jenkins and Git Paramter plugin caused these to appear:

[2025-11-07T12:07:08.487Z] Scheduling project: status-desktop » e2e » prs
Invalid parameter value: (StringParameterValue) GIT_REF='6e42ff2a5cb10933332d6722e1c19babc9973c07'

Which are caused by recently patched vulnerability in the plugin:
https://www.jenkins.io/security/advisory/2025-07-09/#SECURITY-3419
https://github.com/jenkinsci/git-parameter-plugin/releases/tag/444.vca_b_84d3703c2

We could disable this check with:

gitParameterDefinition.allowAnyParameterValue=true

But just using a String paramater is simpler and more convenient.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-11-07 16:39:47 +01:00
Siddarth Kumar b492185376 ci: allow choice of host for e2e jobs
Nastya wanted to pick hosts to run manual e2e jobs on.
This change will give her options to pick from `linux-01`, `linux-02`
and `linux-03` for linux and choice between  `windows-04`, `windows-05`
for windows.
2025-11-06 22:49:08 +04:00
vedran ea8d5e154a chore(ci): upgrade squish to 9.1.0
https://github.com/status-im/infra-ci/issues/217
2025-11-06 17:11:46 +01: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
Siddarth Kumar dee268e221 mobile: build a signed android app
- 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
2025-10-26 12:36:27 +04:00
Anastasiya 0da91505bc ci: update jenkinsfile 2025-10-17 18:36:23 +03:00
marko 64a5e71088 feat(ci): set e2e and tests-ui builds to use dockerfile directive
With this we avoid maintaining separately and tagging the tests docker
image.

Referenced issue:
* https://github.com/status-im/infra-ci/issues/188
2025-10-02 10:10:00 +02:00
marko f2bed0722d feat(ci): move all builds to container
Referenced issue:
* https://github.com/status-im/infra-ci/issues/188
2025-10-01 15:41:56 +02:00
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
Siddarth Kumar 7013ed347d ci: add submodule fetch stage
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" />
2025-09-09 18:26:03 +05:30
jakub acb510a9d1 fix(ci): no such property TEST_SCOPE_FLAG
Fixes:
```
groovy.lang.MissingPropertyException: No such property:
  TEST_SCOPE_FLAG for class: groovy.lang.Binding
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-08-20 11:17:45 +02:00
Siddarth Kumar 2ad002891a ci: hack fix to set params via environment 2025-08-19 21:07:35 +05:30
Lukáš Tinkl 981f92582c chore(Browser): disable the browser section under CI 2025-08-18 15:17:01 +02:00
Siddarth Kumar 7c82daeaa1 ci: disable restart from stage in jenkins
related issue: https://github.com/status-im/infra-ci/issues/202
2025-07-26 15:42:51 +05:30
jakub b0455b574e chore(ci): remove unnecessary label for e2e tests
Was added and not removed during work on parallel Qt5 and Qt6 support.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-07-24 11:40:53 +02:00
Anastasiya 875f717c5f ci: add tests/e2e to GitHub jenkins jobs table
We want higher visibility of Allure report links.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-07-18 15:47:59 +03:00
jakub 24cefe4bf3 ci: disable deferred wipeout for cleanWs task
Suspected cause of Memory usage spikes in Java Jenkins agent:
https://github.com/status-im/infra-ci/issues/200

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-06-26 17:30:57 +02:00
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
Siddarth Kumar 9563722b31 ci: run tests only on hosts with e2e label
The full label for linux host is desktop-e2e
2025-06-18 14:58:44 +05:30
marko 2dae30a055 ci: point squish dir to new 9.0.1 version installation
Referenced issue:
* https://github.com/status-im/status-desktop/issues/17640
2025-06-05 09:54:39 +02:00
marko 19d7818499 ci: e2e remove agent choice param and set static to linux label 2025-06-04 16:53:00 +02:00
marko a86a79d989 ci: update agent name choice on tests-e2e 2025-06-04 16:52:59 +02:00
Siddarth Kumar 550fa1d5a4 ci: add cleanup stage before build 2025-04-03 17:52:36 +04:00
Anastasiya Semiankevich 74d54e9d3f chore(@ci): increase timeout for tests 2025-03-17 15:27:01 +03:00
Anastasiya c4e43841ee ci: add XDG_CONFIG_HOME env var to store user config files 2025-03-14 14:14:05 +03:00
Anastasiya 577f4c2599 ci: remove unused referece 2025-02-26 20:07:16 +03:00
Anastasiya Semiankevich 72069b066b chore(@ci): exclude keycard tests from nightly run instead of skipping them 2024-12-25 16:33:58 +03:00