Commit Graph

68 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
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 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
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
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
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 7c1c178d37
QR code scanner (QML component) (#9464)
Co-authored-by: Richard Ramos <info@richardramos.me>
2023-03-07 12:08:38 -04:00
Anthony Laibe 7d9a6f5a71 feat(@wallet): add pokt network + fallbark 2023-02-28 09:12:05 +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
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
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
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 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 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
Richard Ramos ea44816071 chore: update go version in dockerfile 2022-08-03 09:40:47 -04: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
Richard Ramos 3dfc8d3a79 fix: code review 2022-03-10 14:12:11 -04: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
Patryk Osmaczko ee462ea178 fix(@desktop/input): deploy Qt plugin to support fcitx
Qt provides support for various input methods through plugins.
Since the fcitx plugin is not delivered with Qt, it needs to be
built and deployed by us.

Fixes: #4436
2022-01-26 18:11:39 +01:00
Jakub Sokołowski 977293c1ce ci: manually fix expired LetsEncrypt X3 root cert
https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/
https://blog.dnsimple.com/2021/09/letsencrypt-intermediate-expiration/
https://scotthelme.co.uk/lets-encrypt-old-root-expiration/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-22 14:26:22 +01:00
Jakub Sokołowski 8b19ac0a64 ci: bump Linux and MacOS timeouts to 20 minutes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-22 12:22:46 +01:00
Jakub Sokołowski c4c0484e61 ci: upgrade ca-certificates in Linux Docker image
Otherwise cloning of BearSSL fails with:
```
Cloning into '/home/jenkins/workspace/status-desktop/platforms/linux/vendor/status-lib/vendor/nim-task-runner/vendor/nim-bearssl/bearssl/csources'...
fatal: unable to access 'https://www.bearssl.org/git/BearSSL/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
fatal: clone of 'https://www.bearssl.org/git/BearSSL' into submodule path '/home/jenkins/workspace/status-desktop/platforms/linux/vendor/status-lib/vendor/nim-task-runner/vendor/nim-bearssl/bearssl/csources' failed
Failed to clone 'bearssl/csources'. Retry scheduled
```
https://blog.dnsimple.com/2021/09/letsencrypt-intermediate-expiration/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-22 12:22:46 +01:00
Richard Ramos fe6c5a455a fix: jenkinsfile docker image version 2021-10-19 23:05:44 +02:00
Michele Balistreri a22d936df7 update Jenkinsfile 2021-10-06 08:32:32 -04: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
Jakub Sokołowski 98f2a68209
ci: fix Jenkinsfile library enties to use tags instead of a branch
Again we merged a PR before the `status-jenkins-lib` PR was merged:
https://github.com/status-im/status-desktop/pull/3185

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-19 15:16:54 +02:00
Jakub Sokołowski 2df6def7f9 ci: add scripts/sign-linux-tarball.sh for GPG signing
Adds `scripts/sign-linux-file.sh` which expectes the following variables set:

* `LINUX_GPG_PRIVATE_KEY_FILE` - Path to the GPG export of private key.
* `LINUX_GPG_PRIVATE_KEY_PASS` - Password necessary to use the private key.

Given a file it creates a file with a `.asc` suffix containing the signature:
```
 > wget -q https://status-im-prs.ams3.digitaloceanspaces.com/StatusIm-210809-104514-156806-pr.tar.gz

 > tar xvf StatusIm-210809-104514-156806-pr.tar.gz
StatusIm-210809-104514-156806-pr.AppImage
StatusIm-210809-104514-156806-pr.AppImage.asc

 > gpg --verify StatusIm-210809-104514-156806-pr.AppImage.asc
gpg: assuming signed data in 'StatusIm-210809-104514-156806-pr.AppImage'
gpg: Signature made Mon 09 Aug 2021 12:54:49 PM CEST using RSA key ID E20B4DFD
gpg: Good signature from "Status.im Devel Signing (GPG key for signing Status.im development builds.) <devel@status.im>" [ultimate]
Primary key fingerprint: BBF0 5F92 536B ED19 30A9  FD44 009F B3BF E20B 4DFD
```

Issue: https://github.com/status-im/infra-ci/issues/25
Requires: https://github.com/status-im/status-jenkins-lib/pull/32

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-16 11:21:36 -04:00
Jakub Sokołowski d6266384b7 ci: fix JSON parsing in release process
Fixes:
```
Caused: java.io.NotSerializableException: groovy.json.internal.LazyMap
```
https://ci.status.im/job/status-desktop/job/release/job/release%252F0.1.0-beta.11/2/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-07-28 10:15:08 +02:00
B.Melnik 0def782841 fix: wrong tag to jenkins lib and make parameter 2021-07-20 10:22:21 -04:00
Michael Bradley, Jr a564b48f61 build: on Linux use tar+gzip to preserve +x attribute of .AppImage
We create a separate make target to avoid tarballing every time.
This is really useful only for releases we upload for users.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-07 14:26:28 -04:00
Jakub Sokołowski 6a5b6e3593 ci: do no delete non-draft releases
We identified this issue in status-desktop release from branch
`release/0.1.0-beta.10` which had old version in VERSION file.
https://ci.status.im/job/status-desktop/job/release/job/release%252F0.1.0-beta.10/

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

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-07 10:18:01 -04:00
Jakub Sokołowski 089ee7ee80 ci: scripts/sign-windows-bin.sh for signing Windows binaries
This introduces the `scripts/sign-windows-bin.sh` script which is used
by the `Makefile` to sign application libraries and executables. It also
implements the logic necessary to distinguish between different types of
builds: release and non-release builds.

Some other changes:

* Refactore the `Makefile` target that creates the Windows ZIP to make less verbose.
* Added `Microsoft.VisualStudio.Component.Windows10SDK.10240` to VisualStudio component
* Added `BUILD_TYPE` parameter to `Jenkinsfile`s for different platform builds

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-28 18:19:17 +02:00
Michael Bradley, Jr 37c51cc25f build: use same container as Jenkins CI for local packaged builds on Linux
Make the docker-related logic for doing a local packaged build on Linux match
with the Jenkins CI build for Linux.

Also fix the problems with packaged builds for Linux (local or CI) where
gstreamer errors were displayed in the terminal shortly after app start/login
and there was no sound output.
2021-04-27 13:49:46 -05:00