Commit Graph

186 Commits

Author SHA1 Message Date
Anton Iakimov ef2118873c
ci: add a combined job parameter to choose E2E git ref 2024-04-23 14:56:59 +02:00
Jakub Sokołowski 97b02e1f04
chore(ci): do full Windows workspace cleanup
If we don't we regularly get weird Git failures on Windows like:
```
fatal: Unable to find current revision in submodule path 'vendor/qzxing/tests/resources'
fatal: Failed to recurse into submodule path 'vendor/qzxing'
```
Or
```
stderr: fatal: Unable to create '.../.git/index.lock': File exists.
```
Which are very annoying and require manual workspace purge by infra team.

Many of you will get annoyed with resulting slower checkouts
on subsequent builds, but that's a price I'm willing to pay.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-03-08 21:18:58 +01:00
Anton Iakimov 11bfc84155
ci: cleanup more build artifacts
Should be cleaning artifacts for more than 1+1 build for each branch.
2024-02-28 15:56:40 +01:00
Anton Iakimov 00f1b10b0e
Revert "ci: cleanup more build artifacts"
This reverts commit df4e115c6e.
2024-02-28 15:53:08 +01:00
Anton Iakimov df4e115c6e
ci: cleanup more build artifacts
Should be cleaning artifacts for more than 1+1 build for each branch.
2024-02-28 15:44:58 +01:00
Jakub Sokołowski a27e447f11
chore(ci): change RELEASE into INCLUDE_DEBUG_SYMBOLS
This way it actually reflects the purpose accurately and allows us to
build without debug symbols in CI without pulling in release credentials.
https://github.com/status-im/status-desktop/issues/13079

The only utility for `RELEASE` parameter is inheriting it
from the parent meta-job(`ci/Jenkinsfile.combined`).

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-26 10:16:03 +01:00
Jakub Sokołowski 1410b03dd3
chore(ci): reuse discord send function from library
Provides more info and requires less boilerplate.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-14 16:42:27 +01:00
Anastasiya Semenkevich 0a0466a7a3
ci: fix leftover to allow tests running in nightly
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-13 12:29:35 +01:00
Jakub Sokołowski 568bf8e975
chore(ci): drop old E2E tests in favor of new ones
It's about time we stop running two suits of end-to-end tests.

New end-to-end tests are being developed in a separate repository:
https://github.com/status-im/desktop-qa-automation

And are supposed to be more robust and have a cleaner codebase.

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

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-12 16:27:42 +01:00
Jakub Sokołowski dffa404fec
fix(ci): run only critical path of new e2e for releases
The full suite is unstable and causes frequent timeouts currently.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-08 12:19:27 +01:00
Jakub Sokołowski 55f6c64b48
chore(ci): remove obsolete desktop-e2e-old CI label
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-12-06 15:02:36 +01:00
Anastasiya Semenkevich d3a0c95979 chore: update to new squish version 2023-12-01 21:51:21 +03:00
Dario Gabriel Lipicar faf572308c chore(ci): bump status-jenkins-lib to include rarible api keys 2023-11-27 22:19:44 -03:00
Jakub Sokołowski 074ce22d6e
chore(ci): add Sepolia API keys as on credential
Requires:
https://github.com/status-im/status-jenkins-lib/pull/81

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-25 12:33:28 +01:00
Anastasiya Semenkevich b76f55655e chore: try to use filename as a test run name 2023-11-22 13:20:26 +03:00
vlado@status.im 066c174600 chore: Generation of timestamp in Tests
#320
2023-11-22 13:20:26 +03:00
Anastasiya Semenkevich c9fb3c5746 chore: keycard mocked lib is false by default
Disabling to build Linux artefacts with Keycard mock lib, as it may be the cause of tests being stuck
2023-11-21 20:33:29 +03:00
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