Commit Graph

111 Commits

Author SHA1 Message Date
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
Anthony Laibe 245f3a7266 fix(@ci): update windows ci timeout for build 2022-11-16 09:31:30 -05:00
Jakub Sokołowski 6fa84fb221 ci: add make update to for other platforms
This was added to fix some build issues to Linux:
https://github.com/status-im/status-desktop/pull/8233

But other 2 platforms also have had the cleanup stage change which could
have cause these submodules update issues.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-14 16:03:18 -05:00
Anthony Laibe 1ecb9f64d4 fix: ci build on master linux 2022-11-14 13:41:16 -05:00
Anthony Laibe 15891295e9 test(@wallet): enable mayfail test 2022-11-10 15:43:02 +01:00
Richard Ramos 934dacd632 chore(CI): replace mailserver by storenode 2022-11-08 21:40:06 +03:00
Jakub Sokołowski 38f0973dc3
ci: use git clean instead of cleanWs() function
This is a continuation of attempts to fix provlems with Windows CI hosts
getting into a broken state due to `.git` directory becoming a file for
random submodules for unknown reason.

Instead of relying on Jenkins functionality of `cleanWs()` function
provided by the [Workspace Cleanup Plugin](https://plugins.jenkins.io/ws-cleanup)
we use Git which should be more reliable, and possibly also speed up the
initial checkout of the repo and submodules.

A nice side-effect is that the repo checkout on all builds after the first
one takes ~1 minute instead of ~5 minutes.

Previous issues:
- https://github.com/status-im/status-desktop/pull/7968
- https://github.com/status-im/status-desktop/pull/8046

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-06 20:20:54 +01:00
Jakub Sokołowski 8f254279e1
ci: fix TARGET value in imports Jenkinsfile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-04 16:20:47 +01:00
Jakub Sokołowski 8115fdd0d0 ci: add Jenkinsfile.imports
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-11-04 12:01:59 +01:00
Anthony Laibe 34d7d4354b test: fail balance test 2022-10-27 17:38:28 +02:00
Jakub Sokołowski b5e317db4d
ci: add deleteDirs:true for cleanWs to fix cleanup
This is a continuation of a fix done in:
https://github.com/status-im/status-desktop/pull/7968

This adds `deleteDirs` option to delete the whole workspace:

>When deferred wipeout is disabled, the old implementation of
>filesystem content deletion is used. If you want the same
>behavior as with deferred wipeout, you have to set the plugin
>attribute `deleteDirs` to true as well.

https://github.com/jenkinsci/ws-cleanup-plugin#deferred-wipeout

Because otherwise the `vendor` folder remains and causes
issues when `.git` is a file.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-26 13:45:49 +02:00
Jakub Sokołowski 4f60c31282
ci: use cleanup instead of always step in post steps
Simply appropriate.
https://www.jenkins.io/doc/book/pipeline/syntax/#post

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-26 13:45:48 +02:00
Jakub Sokołowski e11d522e8e
ci: disable deferred wipeout for Windows
A potential partial fix found for an issue found in:
https://github.com/status-im/status-desktop/pull/7789

Where an incomplete broken checkout of a `vendor` module which crated a
`.git` file instead of a directory in `vendor/nimPNG` caused the error:
```
 $ git submodule update --init --recursive vendor/nimPNG
fatal: Needed a single revision
Unable to find current revision in submodule path '../nimPNG'
```
Which then was not correctly cleaned up and in turn caused error:
```
org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node, dockerNode
...
```
The last known successful CI build for that PR showed in logs:
```
00:05:13  [WS-CLEANUP] Deleting project workspace...
00:05:13  [WS-CLEANUP] Deferred wipeout is used...
00:05:13  [WS-CLEANUP] done
```
Which means the `Workspace Cleanup` plugin uses the `Resource Disposer`
plugin to wipe the workspaace in the background, which could potentially fail:
https://plugins.jenkins.io/ws-cleanup/#plugin-content-deferred-wipeout

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-20 23:23:34 +02:00
Noelia 728aa00c3c test(chore/suite_messaging): Added specific `bdd_hooks` for `suite_messaging/tst_ChatFlow`
- Reviewed `suite_messaging/tst_ChatFlow` feature: Cleanup of duplicated steps and separation of action / validation applied.

- Reviewed `suite_messaging/tst_groupChat` feature.

- Added new tag to `Jenkins` file: `relyon-mailserver`.

- Added new `StartupSteps` class to manage init / startup static methods outside bdd steps. It can be used as a util in `hooks` and `steps`.

Closes #7931
2022-10-20 16:06:39 +02:00
Anthony Laibe 1dcc3a1f2f test(@general): print result 2022-10-19 13:36:55 +02:00
Richard Ramos 1a2524cbda chore: setup a mailserver as part of UI tests run in CI 2022-10-03 16:31:23 -04:00
Anthony Laibe a9d2ecf839 fix(@wallet): Send tx popup
fixes #7429
2022-09-23 10:08:26 +02:00
Anthony Laibe 23396ea0cd test: add merge tag + add missing mayfail 2022-09-21 19:53:21 +02:00
Jakub Sokołowski b70a1c3a45
ci: set PKG_URL to avoid interrobang for builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-21 12:35:48 +02:00
Jakub Sokołowski 8c457a2495
ci: abort old PR builds to make queue shorter
In most cases developers only care about the most recent version.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-21 12:18:15 +02:00
Jakub Sokołowski 83c066f517
ci: fix upload speeds on Windows
By using `s3cmd` through PowerShell instead of Git Bash we improve
upload speeds on Windows slightly, as described here:
https://github.com/status-im/infra-ci/issues/40

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-15 11:41:12 +02:00
Jonathan Rainville aba2a42c6f test(@wallet): allow to use ganache with goerli 2022-09-13 11:56:42 +02:00
Jonathan Rainville 7544bd6fb5
fix: change gateway and remove old code to decode the hash
Fixes:
- https://github.com/status-im/status-desktop/issues/6964
Depends on:
- https://github.com/status-im/status-go/pull/2795
- https://github.com/status-im/status-jenkins-lib/pull/44

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-26 19:47:02 +02:00
Stefan cfef7dc443 fix(CPP): fix linux compiling issues
Fix BigInt compilation on linux
Remove c++20 optimization for NamedType
Add assert for failing getChats that was providing an easy to miss warning
Enable linux CI build
Don't run tests. They fail to run in docker with
 "malloc_consolidate(): invalid chunk size", probably due to status-go
2022-08-23 19:38:23 +02:00
Jonathan Rainville cd06b5b943 ci(e2e-tests): only allow one CI job at a time for tests 2022-08-17 14:38:23 -04:00
Jonathan Rainville 3d2d48a705 test(tags): add ignore tags to tests that have a chance to fail 2022-08-16 10:22:20 -04:00
Jakub Sokołowski 09d5d2a99a ci: Discord notification for master build failrues
To make this not send 3 separate notifications for each platform we
build for I've created a special job just for building `master` branch:
https://ci.status.im/job/status-desktop/job/master/

For more details see:
https://plugins.jenkins.io/discord-notifier/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-16 10:24:54 +02:00
Anthony Laibe 0c286e2a53 fix(@ci): keep only linux-01 2022-08-11 10:24:40 -04:00
Anthony Laibe 2f7e6998bf test(@wallet): Add test for toggling network & balance 2022-08-11 14:09:07 +02:00
Anthony Laibe 1b6fc3b266 test(@wallet): fix test on CI 2022-08-10 20:56:01 +02:00
Jakub Sokołowski 44ed858363
ci: fix Xvfb conflicts due to parallel builds
By default these settings are disable:
```java
    /** Let Xvfb pick display number */
    private boolean autoDisplayName = false;
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L434-L435
```java
    /** Run on same node in parallel */
    private boolean parallelBuild = false;
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L440-L441

Which means that this code doesn't have an effect by default:
```java
        final int executorNumber= executor.getNumber();

        if (parallelBuild) {
            final Computer[] computers = Jenkins.get().getComputers();
            final int nodeIndex = Arrays.binarySearch(computers, currentComputer, ComputerNameComparator.INSTANCE);

            return nodeIndex * 100 + executorNumber + displayNameOffset;
        }
        else {
            return executorNumber + displayNameOffset;
        }
```
https://github.com/jenkinsci/xvfb-plugin/blob/88cb84e0/src/main/java/org/jenkinsci/plugins/xvfb/Xvfb.java#L637-L647

And causes errors like this:
```
$ /usr/bin/Xvfb :0 -screen 0 1024x768x24 -fbdir /home/jenkins/workspace/desktop_branches_uitests_PR-6952/.xvfb-3-..fbdir7194278924155710961
Xvfb starting(EE)
Fatal server error:
(EE) Server is already active for display 0
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-10 18:42:17 +02:00