Commit Graph

141 Commits

Author SHA1 Message Date
Jakub Sokołowski 238a18b462 ci: pass RELEASE parameter to child jobs from parent
This is a possible fix for issues with `x86_64` app failures:
https://github.com/status-im/status-desktop/issues/11762

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-08-03 11:07:54 +03:00
Jakub Sokołowski 7f27ea593d
ci: fix use of release Infura key for E2E runs
Depends on: https://github.com/status-im/status-jenkins-lib/pull/71

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-08-01 18:16:53 +02:00
Jakub Sokołowski 24cdab41c6 ci: fix read-only FS errors in AppImage
After a LOT of work from @jrainville bisecting the release branch he
identified the issue to be this commit:
https://github.com/status-im/status-desktop/commit/dad8e453
ci: bump client build retries to 20

Which actually was poorly squashed by @iurimatias and contains the
commit that also adds the retries in the first place:
https://github.com/status-im/status-desktop/commit/a5ba2537
ci: retry nim_status_client build 3 times

The reason why that's an issue is because normally it was caled by `make
tgz-linux` target which included this setting:
```
override RESOURCES_LAYOUT := $(PRODUCTION_PARAMETERS)
```
Which caused `NIM_PARAMS` to use `-d:development` instead of `-d:production`.
The result was the app trying to write config file changes to the read-only
filesystem of the AppImage.

Resolves: https://github.com/status-im/status-desktop/issues/11295

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-07-05 15:37:15 -04:00
Jakub Sokołowski b3625cceed
ci: upgrade docker image to Ubuntu 20.04
Ubuntu 18.04 LTS support has ended on the 31st of May 2023. It's about
time we upgraded to 20.04, which uses Glibc `2.31` instead of `2.27`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-07-03 20:50:02 +02:00
Jakub Sokołowski 8febd4d53d
ci: bump client build retries to 20
10 is just not enough

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-27 13:37:52 +02:00
Jakub Sokołowski a5ba253730
ci: retry nim_status_client build 3 times
This is a temporary stop-gap fix for a known linux build issue:
https://github.com/status-im/infra-ci/issues/88

Since currently this issue is very hard to reproduce and there is no
good solution in sight this should minimize the pain caused by it.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-26 20:00:46 +02:00
Jakub Sokołowski 74357faf32
Revert "ci: upgrade to GCC 11 to match build outside Docker"
This reverts commit 38d3b32cb9.
2023-06-20 09:25:37 +02:00
Jakub Sokołowski a073a3ff6c ci: disable QML cache to avoid stale cache
Possible fix for random build crashes on Linux:
https://github.com/status-im/infra-ci/issues/88

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-14 14:18:57 +02:00
Jakub Sokołowski 38d3b32cb9
ci: upgrade to GCC 11 to match build outside Docker
Possible fix for weird Linux crashes:
https://github.com/status-im/infra-ci/issues/88

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-14 11:07:54 +02:00
Lukáš Tinkl 9aeba367df fix: download remote image URLs in DOS/C++
this should resolve the CI issues in `e2e` target by moving away the
httpclient NIM impl to DOS (C++)
2023-06-08 20:46:06 +02:00
Lukáš Tinkl 1c0a71218e fix(e2e): resolve dynlib OpenSSL issues
by explicitely specifying `-d:useOpenssl3`

cf https://github.com/status-im/status-desktop/pull/9428#issuecomment-1425581979
2023-06-08 15:33:46 +02:00
Jakub Sokołowski ced3242cdb ci: add NIMFLAGS parameter to jobs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-06 17:48:44 +02:00
Jakub Sokołowski ffa200f32d
ci: upgrade from Go 1.19.5 to 1.20.4
This is supposed to fix crashes on M1 Macs:
https://github.com/status-im/status-desktop/issues/10548
https://github.com/status-im/status-desktop/pull/10442
Specifically this commit:
c00e9285ea

https://go.dev/doc/devel/release#go1.20

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-04 16:01:17 +02:00
Jakub Sokołowski 99fdc91e2b macos: bump notarization retry limit from 20 to 40
Notarization has been taking longer recently and it times out.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-27 13:49:29 +02:00
Jakub Sokołowski 9993685b5a
ci: add Alchemy credentials, update Infura
Was supposed to be done in:
https://github.com/status-im/status-desktop/pull/10338
But it was merged without those changes.

Depends on:
https://github.com/status-im/status-jenkins-lib/pull/62

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-22 11:09:02 +02:00
Jakub Sokołowski 4bd81e8a9a ci: force default Squish params for PR jobs
This way we prevent situation in which a developer or QA engineer runs a
custom job with adjusted parameters, and then all following jobs use
those modified parameters implicitly. The more sane behavior is to
always revert to defaults for PR builds, but remember last used
parameters for non-PR builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-20 13:43:43 +02:00
Jakub Sokołowski 54bdb867bf ci: add missing copyArtifactPermission options
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-20 13:43:43 +02:00
Jakub Sokołowski 1e2e7075d5 ci: add suite and tags parameters to e2e CI job
Allows for easier running of individual test suites and selecting tags.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-14 18:15:05 +02:00
Jakub Sokołowski 3013fb8faa
ci: run e2e tests for release and master builds
Useful for tracking down which commit introduced a breaking change.

I'm lowering `maxConcurrentTotal` limit for e2e parallel build since the
release builds on `ci.infra.status.im` do not share the same throttling
limits across Jenkins instances, so we can hit a licenses usage limit.

Also increasing number of builds to keep to 30.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-14 16:50:38 +02:00
Jakub Sokołowski 5b25465399
ci: drop temporary symlinks to tests
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-14 16:50:37 +02:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Jakub Sokołowski f644cdc6f4 ci: extend PATH to include QTDIR on linux
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-07 13:34:21 -04:00
Jonathan Rainville 3871c704aa chore(windows/ci): move env var up in the list to be like other files 2023-04-07 13:34:21 -04:00
Jakub Sokołowski 1f91bbc724
ci: fix typo in arch, add tests prefix to names
The symlinks are temporary to avoid issues in PRs that won't be rebased
right away. We can remove them later.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-07 17:40:34 +02:00
Jonathan Rainville f6c1b038a2 fix(windows): add env paths to point to Qt5.15 when building 2023-04-07 11:22:39 -04:00
Jakub Sokołowski 349c83347d
ci: allow running MacOS builds on M1 Macs
This depends on installing Qt via Brew, but that creates a version mismatch,
since it's 5.15.8 and not 5.15.2, which is not optimal but works for now.

In the long term we should probably look into using Nix, or maybe aqt
will support M1 Macs, but this is not great.

Depends on:
- https://github.com/status-im/infra-ci/commit/54408b41
- https://github.com/status-im/infra-ci/commit/39d4fdef

Resolves: https://github.com/status-im/status-desktop/issues/9984

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-07 14:25:34 +02:00
Igor Sirotin 14c264e350
feature(Syncing): Embed QR code scanner for syncing devices on onboarding (#9981)
* fix(StatusQrCodeScanner): Improve QR code scanner
- Almost async loading
- Added camera selector
- Added `captureRectangle` property
- Add component info to sandbox qr code scanner page
- Embed QrCodeScanner into desktop app
* Compile and link qzxing as shared library
* Hardcode settingCurrentNetwork. Propagate inputConnectionString errors.
* Added qzxing libdir to e2e tests ld_library_path
2023-03-30 20:57:18 +03:00
Igor Sirotin 7c1c178d37
QR code scanner (QML component) (#9464)
Co-authored-by: Richard Ramos <info@richardramos.me>
2023-03-07 12:08:38 -04:00
Noelia 5ffab60f5a ci(e2e): Updated squish version from 6.7.2 to 7.1-SNAPSHOT
- Updated squish version from 6.7.2 to 7.1-SNAPSHOT
- Updated tests readme file.
2023-03-07 10:32:26 +01:00
Anthony Laibe 7d9a6f5a71 feat(@wallet): add pokt network + fallbark 2023-02-28 09:12:05 +01:00
Noelia 37c88cbaac ci(e2e): Changed UNSTABLE state to be considered as a failure
UNSTABLE state means some tests have failed during the retries but also in the last retry so, it contemplates real failures too.
2023-02-10 17:44:56 +02:00
Jakub Sokołowski 6d658c7c84 ci: revert to using Squish 6.7.2 for Qt 5.14.x
Temporary possible solutions to hanging E2E tests.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-08 16:19:52 -05:00
Jakub Sokołowski 46d4193bbd ci: fix labels for imports CI job and QTDIR
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-03 11:39:51 -05:00
Jakub Sokołowski 246e8b2704 ci: add missing dependencies for Qts libqxcb.so
Without the following dependencies:
```
libxcb-shape0 libxcb-randr0 libxcb-icccm4 libxcb-image0
libxcb-keysyms1 libxcb-render-util0 libxcb-render0 libxcb-xinerama0
```
The `libqxcb.so` library is unusable:
```
 > ldd -v /opt/qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so
 > echo $?
1
 >
 > LD_TRACE_LOADED_OBJECTS=1 /lib64/ld-linux-x86-64.so.2 /opt/qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so
zsh: segmentation fault (core dumped)  LD_TRACE_LOADED_OBJECTS=1 /lib64/ld-linux-x86-64.so.2
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-03 11:39:51 -05:00
Jakub Sokołowski fc5dbf0d2c
ci: update build setup scripts to Qt 5.15.2
This needs to be synced with a Squish upgrade to match the QT version.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-01 23:15:56 +01:00
Jakub Sokołowski 4fb35c36b4
ci: add missing qt labels for build hosts
To avoid mixing builds on upgraded and unupgraded hosts.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-01 13:01:31 +01:00
Alex Jbanca db3b63e29d chore(Qt5.15.2): Update linux CI to use docker image with Qt5.15.2 installed
We're using a base ubuntu:18.04 Docker image and install Qt5.15.2 on top using aqt installer and linuxdeplyqt.
Upgrade of ubuntu_build_setup.sh is left to a separate PR due to Squish being tied to old Qt.
2023-01-31 19:10:28 +01:00
Alex Jbanca 6e6693a428 chore(Qt5.15): Update windows CI Qt install script
chore(Qt5.15): Update windows Qt install script
2023-01-31 19:30:24 +02:00
Jonathan Rainville 7a3a984fa4 test(env-var): add TEST_ENVIRONMENT env var for test specific changes
Fixes #9210

Adds the `TEST_ENVIRONMENT` that stops banners from showing and touch id to be activated (needs to be tested by someone on Mac).

Also improves the waiting time on verifying screens. Will undo that change if it becomes flaky.

To make sure your local tests still work well and hide the banner as well, make sure to put `TEST_ENVIRONMENT=1` in the suite settings' env vars
2023-01-27 11:26:41 -05:00
Jonathan Rainville 692d2ceee4 chore: up timeout time for release builds to 60min 2023-01-16 11:32:04 -05:00
Patryk Osmaczko d89e6b5ac6 fix(ci): make tests-nim use docker image with nim installed 2023-01-11 10:57:21 +01:00
Patryk Osmaczko 94d7c478eb feat: introduce nim tests 2022-12-21 10:32:46 +01:00
Jakub Sokołowski 5212590681
ci: update Apple dev team ID to update the org
Otherwise we get failures when notarizing the app:
```json
{
  "message": "Unable to upload your app for notarization.",
  "userInfo": {
    "NSLocalizedDescription": "Unable to upload your app for notarization.",
    "NSLocalizedFailureReason": "--team-id DTX7Z4U3YA is not valid for the user name specified. Use --list-providers."
  },
  "code": -1027
}
```
Related: https://github.com/status-im/status-mobile/pull/14411

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-08 20:07:36 +01:00
Anthony Laibe 5ee51ad20d feat(@test): parallelize test
fixes #8317
2022-12-06 09:28:54 +01:00
Jakub Sokołowski 5f36d4f99f
ci: fix name of e2e test jobs in gh comments
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-23 20:04:25 +01:00
Jakub Sokołowski 7ab06c6060
ci: clarify why we ignore UNSTABLE squish state
I tried using `--exitCodeOnFail` but it didn't work.
https://doc.qt.io/squish/cli-squishrunner.html#playback-option-op-op-op-op-exitcodeonfail

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-23 15:37:38 +01:00
Jakub Sokołowski 9f076ed70c
ci: refactor uitests to use multiple stages
Please do not run 20 different things in a single stage.
It makes debugging much harder than it needs to be, since now you can
see at a glance the startup of which container fails easily.

Changes:
- Starting of Ganache and Nim-Waku containers extracted to separate stages
- Cleanup of containers moved to `cleanup` step after tests are executed
- Many variables moved to `enrivonment` section for job and some stages
- The `throttle` effect narrowed down just to the `Tests` stage and not whole job
- RPC API is used to get the Multiaddress of Nim-Waku node instead of hardcoding key
- Removed no longer necessary `status-go` history node related files
- `Jenkinsfile.uitests` was renamed to `Jenkinsfile.e2e` to match CI job names

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-23 00:19:06 +01:00
Jakub Sokołowski f3ccc2422c
ci: fix github comment, add upload to imports
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-23 00:18:58 +01:00
Jakub Sokołowski 4b2f2c32ad
ci: separate buckets for mobile and desktop builds
Possible fix for slow upload speeds and failures caused by most probably
hitting per-bucket rate limits of DigitalOcean:

>- 500 total operations per second to any individual bucket.
>- 300 combined PUT, POST, COPY, DELETE, and LIST operations per second
>  to any individual Space. We may further limit LIST operations if
>  necessary under periods of high load.

https://docs.digitalocean.com/products/spaces/details/limits/#rate-limits

Depends on: https://github.com/status-im/status-jenkins-lib/pull/52

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-22 17:32:53 +01:00
Jakub Sokołowski ff9c678a1e
ci: extract git cleanup to separate script
It needs to be separate script, because once the submodules are broken
and the `variables.mk` file is not available from `nimbus-build-system`
then we cannot even call `make clean-git` successfully because it will
be caught by the `if` clause that checks for `variables.mk`.

Possible fix for issues with submodules not being updated in some
windows release builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-22 14:28:14 +01:00