Commit Graph

69 Commits

Author SHA1 Message Date
Anton Iakimov e251d5907d
ci: add a comment about windows workspace cleanup 2024-04-16 18:33:28 +02:00
Jakub Sokołowski efd831eb08
feat(ci): add Nix 2.19.3 for status-go builds (#14398)
Otherwise it fails with:
```
performing a single-user installation of Nix...
directory /nix does not exist; creating it by running 'mkdir -m 0755 /nix && chown jenkins /nix' using sudo
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
/tmp/nix-binary-tarball-unpack.roliyEDk9X/unpack/nix-2.19.3-x86_64-linux/install: please manually run 'mkdir -m 0755 /nix && chown jenkins /nix' as root to create /nix
```
Related to:
https://github.com/status-im/status-go/pull/4388

Signed-off-by: Alexis Pentori <alexis@status.im>
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-04-11 17:14:47 +03:00
Jakub Sokołowski 1851838e64
chore(ci): bump jenkins lib and rename TARGET
Had to be changed to `PLATFORM` due to conflict of `TARGET` with our Nix
shell setup in `status-mobile` and `status-go`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-03-27 13:31:33 +01: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
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
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
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 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
Dario Gabriel Lipicar 92b2a209a2 ci: use new Alchemy API keys for Ethereum 2023-10-05 10:29:48 -03: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
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 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 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 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 54bdb867bf ci: add missing copyArtifactPermission options
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-20 13:43:43 +02: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
Anthony Laibe 7d9a6f5a71 feat(@wallet): add pokt network + fallbark 2023-02-28 09:12:05 +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
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 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
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 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
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 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
Jakub Sokołowski ce1436ac15 ci: remove caching of dependencies
Upgrade of Jenkins to `2.343` has introduced a security fix that breaks
caching plugin when it's configured to store cache on Master host:
https://issues.jenkins.io/browse/JENKINS-67173

Sine the [Caching plugin](https://plugins.jenkins.io/jobcacher/) hasn't
been upgraded in 5 years the only good temporary workaround is just drop
caching of dependencies like Nim compiler entirely.

In the future we can try some other caching methods.

Related: https://github.com/status-im/nimbus-eth2/pull/3594

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-04-15 12:45:27 +02:00
Anthony Laibe 03b4bb0511 feat(@wallet): Add opensea api key 2022-02-16 10:29:00 +01:00
Jakub Sokołowski 2689a08ebb ci: add VERBOSE parameter to change build verbosity
This depends on the `V` paramerter in `nimbus-build-system`:
https://github.com/status-im/nimbus-build-system/blob/25a4c270/README.md#L54-L61

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-02-09 13:05:32 +01:00
Jakub Sokołowski 0d04deb2ad ci: drop unused BUILD_TYPE, add useful RELEASE param
It appears this was some leftover from ancient times and wasn't being used.

On the other hand the `RELEASE` environment variable controls if Nim builds
of the client binary include debug symbols:
ba7a6d5d34/Makefile (L177-L184)

The shorthand `?:` symbol means that if this is changed for a given job it stays changed.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-02-09 13:05:32 +01:00
Jakub Sokołowski 145652d2d0 ci: upgrade library and use of pkgFilename()
Depends on: https://github.com/status-im/status-jenkins-lib/pull/36

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-29 10:19:15 +02:00
Andrei Smirnov ca11ae62b8 Build exe and 7z at one make call 2021-09-16 16:50:28 -04:00
Andrei Smirnov 691795c644 Testing changes suggested in PR 2021-09-16 16:50:28 -04:00
Andrei Smirnov e6a7d25e7b Addressed PR feedback 2021-09-16 16:50:28 -04:00
Andrei Smirnov d4da9b75f0 feat(@desktop/windows): produce 7z archive when packaging 2021-09-16 16:50:28 -04:00