Commit Graph

169 Commits

Author SHA1 Message Date
Jakub Sokołowski 58dbba1a21 fix(ci): archive copied artifacts right away
This way they are available earlier for E2E tests.
Also bump general job timeout.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-21 13:38:01 +01:00
Jakub Sokołowski f8d78cdb95
chore(test): drop usage of ganache in old E2E tests
The Ganache tool has been replaced by Hardhat:
https://consensys.io/blog/consensys-announces-the-sunset-of-truffle-and-ganache-and-new-hardhat

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-16 12:21:25 +01:00
Vladimir Druzhinin ee4077d673
chore: Generate test run name for Test Rail (#12757)
Co-authored-by: vlado@status.im <Vladimir Druzhinin>
2023-11-16 10:23:45 +01:00
vlado@status.im 7936547288 chore(e2e): Generate name of Nightly run for TesRail
#276
2023-11-13 15:54:00 +03:00
Jakub Sokołowski b78d158a4b fix(ci): run old e2e on dediated hosts
For debugging possible delays caused by old and new e2e jobs running
on the same CI host.

Related to:
https://github.com/status-im/desktop-qa-automation/pull/298

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-13 12:35:09 +03:00
Jakub Sokołowski d2439cdf15
fix(ci): archive artifacts in pkg folder
This allows jenkins.copyArts() to work with meta-jobs.

Required for:
https://github.com/status-im/desktop-qa-automation/pull/270

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-07 10:05:46 +01:00
Jakub Sokołowski 9e8796f161
feature(ci): set build description even if it fails
QA needs easier access to public URLs from DigitalOcean spaces, and when
this meta-job fails the URLs are buried within child jobs and hard to access.

This not only sets the description if build fails, it sets it after
every single child build finishes.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-04 12:17:16 +01:00
Jakub Sokołowski dd2b58a7f5
chore(ci): upgrade Jenkins library to 1.8.0
This version introduces a bunch of changes so I want to test them
separately.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-26 23:11:23 +02:00
Jakub Sokołowski cfd82ee094
feat(ci): trigger E2E from meta build for releases
The method of triggering new E2E builds from the Linux build makes sense
for PRs, but doesn't make as much sense for nightly or release builds.

By triggering it this way we will see the result as part of the whole
build that includes all platforms and all tests.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-26 22:11:41 +02:00
Igor Sirotin 8cee3f500a chore(macos): add entitlements required for squish
And CI parameter to override the default entitlements.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-26 21:17:09 +03:00
Jakub Sokołowski cb703a44a4
fix(ci): use getFullDisplayName()
Since getProjectName() is not available for all types returned from
utils.parentOrCurrentBuild(), which can result in a crash.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-26 00:12:49 +02:00
Jakub Sokołowski 1072033ef1
fix(ci): use getProjectName() to get parent name
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-25 18:49:45 +02:00
Jakub Sokołowski 0592154a33
fix(ci): missing module name for parentOrCurrentBuild
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-25 17:25:42 +02:00
Jakub Sokołowski 6ab2873742
feat(ci): trigger new E2E run after Linux build
We run `prs` job for PRs and `nightly` for... nightly.

Depends on:
https://github.com/status-im/desktop-qa-automation/pull/195

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-24 14:18:58 +02:00
Jakub Sokołowski c0b564e160
fix(ci): pin linuxdeployqt at 20230423 (8428c59)
Using continuous builds is a great way to get unexpected results.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-24 13:47:56 +02:00
Sale Djenic f88c23dc7b refactor(@desktop/general): env variables sorted and CL args introduced
- Necessary env variables to build the app:
STATUS_BUILD_INFURA_TOKEN
STATUS_BUILD_INFURA_TOKEN_SECRET
STATUS_BUILD_POKT_TOKEN
STATUS_BUILD_OPENSEA_API_KEY
STATUS_BUILD_ALCHEMY_ETHEREUM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_ETHEREUM_GOERLI_TOKEN
STATUS_BUILD_ALCHEMY_ARBITRUM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_ARBITRUM_GOERLI_TOKEN
STATUS_BUILD_ALCHEMY_OPTIMISM_MAINNET_TOKEN
STATUS_BUILD_ALCHEMY_OPTIMISM_GOERLI_TOKEN

- The list of available env variables as well as CL arguments can be seen running
the app providing `--help` argument. All env vars are prefixed with `STATUS_RUNTIME_`.
2023-10-24 13:16:58 +02:00
Jakub Sokołowski 8caa72c3b5
fix(ci): use linux.bundle() to add credentials
Otherwise none of these credentials are present:
https://github.com/status-im/status-jenkins-lib/blob/master/vars/linux.groovy

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-24 11:43:58 +02:00
Michał Cieślak 5d0466b627 General: Exclude Storybook's PageValildator to separate target in Makefile to mitigate QTBUG-92236
This workaround can be removed after full migration to Qt >= 5.15.4
2023-10-18 13:50:35 +02:00
Michał Cieślak bfcf891e49 General: Add Storybook tests to CI
Runs all tests from Storybook directory via ctest:
- tests for Storybook itself
- UI unit tests using the same stubs mechanism as Storybook pages
- PagesValidator checking if SB pages are compilable

Closes: #12213
Closes: #12437
2023-10-18 13:50:35 +02:00
Jakub Sokołowski cefafbccc6
chode(ci): drop outdated fix for client builds
This hack was necessar before the proper fix was applied in:
https://github.com/status-im/status-desktop/pull/11955

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-16 17:08:39 +02:00
Jakub Sokołowski 2c5eeea503
feat(ci): add USE_MOCKED_KEYCARD_LIB parameter
It will default to `true` for Linux builds except release ones.
This setting can always be overriden manually for any build.

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

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-13 09:02:45 +02:00
Jakub Sokołowski ac935b00d7
chore(e2e): rename TEST_ENVIRONMENT to STATUS_RUNTIME_TEST_MODE
Because the environment variable name is far too generic and barely
means anything. It needs to clearly indicate that it's supposed to be
used at runtime and it changes how the Status app behaves.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-13 09:02:44 +02:00
Dario Gabriel Lipicar 92b2a209a2 ci: use new Alchemy API keys for Ethereum 2023-10-05 10:29:48 -03:00
Jakub Sokołowski ebc48c0072
ci: drop temporary Nim client build fix
There is no need for this fix since this was resolved in:
https://github.com/status-im/infra-ci/issues/88
https://github.com/status-im/status-desktop/pull/11955

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-10-04 15:53:37 +02:00
Jakub Sokołowski 0067904404
ci: use new OpenSea API keys
They are split by both platform and build type.

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

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-09-29 16:32:59 +02:00
Michał Cieślak 0f1c51d628 ci: add Jenkinsfile for running StatusQ qml tests 2023-09-06 10:00:17 +02:00
Anton Iakimov 2c50004275
ci: update jenkins lib 2023-08-15 17:38:58 +02:00
Anton Iakimov dcfebbcb9e
ci: switch altool to notarytool 2023-08-10 14:31:17 +02:00
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