Commit Graph

319 Commits

Author SHA1 Message Date
Igor Sirotin 61322b8dab fix_: catching gotestsum exit code 2024-06-21 12:10:44 +01:00
Igor Sirotin a049f0b688
fix_: include coverage from all packages (#5390) 2024-06-20 21:35:35 +01:00
Igor Sirotin d00df557c7
fix_: final coverage reports merging (#5384) 2024-06-19 17:57:44 +01:00
Igor Sirotin d2f4cae18f
fix: merge coverage reports from each test rerun (#5360)
* fix_: fix test coverage when rerunning tests

* fix_: make lint-fix

* chore_: change test coverage report artifact name

* chore_: added codeclimate.json to artifacts

* chore_: bring in gocovmerge util

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
2024-06-19 11:40:52 +01:00
Patryk Osmaczko e9882e88d3 chore(ci)_: archive logs in case of test failure 2024-06-17 17:17:54 +02:00
Anton Danchenko 74e9ce93bf
test(wallet)_: status-go integration tests (#5302) 2024-06-11 13:36:20 +02:00
Siddarth Kumar 8e53f62331
chore_: set $GIT_COMMIT for codeclimate (#5315)
When Jenkins creates a build, it can sometimes run the build on a detached HEAD, causing the commit SHA to be different from the SHA of your branch. This will cause issues when reporting test coverage to Code Climate.

Setting `GIT_COMMIT` fixes code climate upload errors.

ref -> https://docs.codeclimate.com/docs/jenkins#jenkins-ci-builds

Closes #5294
2024-06-10 07:30:10 +05:30
Patryk Osmaczko c2f5bdb907 chore(scripts)_: extend tests timeout to 35mins 2024-06-07 23:46:20 +02:00
Igor Sirotin a01ffdbe8e
fix: proper usage of CreateAccount RootDataDir (#5284)
* fix_: introduce CreateAccount.RootDataDir
* fix_: deprecate and remove ShhextConfig.BackupDisabledDataDir
2024-06-05 14:03:34 +01:00
Igor Sirotin 12dfe285d7
chore_: archive test coverage result as artifact (#5280) 2024-06-03 17:31:27 +01:00
Patryk Osmaczko 568e07d2eb chore(scripts)_: add HEAD logging to run_unit_tests.sh
To check if #4993 is really resolved.
2024-05-22 19:44:25 +02:00
Jakub Sokołowski 9ad8829ce0
fix(ci)_: lock Go at 1.20 and Alpine at 3.18
Otherwise builds fail with:
```
sqlite3.c:37493:42: error: 'pread64' undeclared here (not in a function); did you mean 'pread'?
37493 |   { "pread64",      (sqlite3_syscall_ptr)pread64,    0  },
      |                                          ^~~~~~~
      |                                          pread
sqlite3.c:37511:42: error: 'pwrite64' undeclared here (not in a function); did you mean 'pwrite'?
37511 |   { "pwrite64",     (sqlite3_syscall_ptr)pwrite64,   0  },
      |                                          ^~~~~~~~
      |                                          pwrite
sqlite3.c: In function 'seekAndRead':
sqlite3.c:37497:49: error: unknown type name 'off64_t'; did you mean 'off_t'?
37497 | #define osPread64 ((ssize_t(*)(int,void*,size_t,off64_t))aSyscall[10].pCurrent)
      |                                                 ^~~~~~~
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-20 08:25:49 +02:00
Jakub Sokołowski c7397e18dd
chore(all)_: remove obsolete eth.staging fleet
And leftovers of `eth.test` fleet which no longer exists.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-17 20:21:00 +02:00
Anton Iakimov 92ef58d420
chore_: drop wakuv2 fleets, use waku fleets
See https://github.com/status-im/infra-nim-waku/issues/91 for details.

Mostly done automatically. Some parts manually.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-17 18:53:40 +02:00
Igor Sirotin 0dde5a3b17
chore_: enable nightly codeclimate reports (#5127)
* chore_: enable nightly codeclimate reports
* fix_: report codeclimate before exiting
2024-05-08 21:57:50 +01:00
Jakub Sokołowski a97f1bb681
chore(ci)_: simplify Jenkinsfile for tests, fix params (#5136)
Because most of those functions just obscure what's happening.
Also formatting.

Also, it appears Jenkins sets `params` on first run, but not `env`
variables from those `params`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-05-08 21:04:15 +02:00
Igor Sirotin 068ae3b67c
chore_: setup ci codeclimate coverage reports (#5101)
* chore_: nix derivation with cc-test-reporter
2024-05-08 09:25:01 +01:00
Anton Iakimov c57c8aabc4
ci: fix build 2024-04-11 10:59:37 +02:00
Patryk Osmaczko 853afccfae revert_: "ci: temporarily disable migration check"
This reverts commit d4c0500200e2decd85668a02dbf6c12d92678322.
2024-04-10 16:40:57 +02:00
Patryk Osmaczko 448758e64a ci_: temporarily disable migration check
Temporary, to cherry-pick migration from release branch.
2024-04-10 14:27:14 +02:00
Andrea Maria Piana fc846211b7
fix_: make sure tag version works if no args are passed 2024-04-10 12:18:30 +01:00
Andrea Maria Piana a9228df085
fix_: ignore description in commit check 2024-04-10 12:04:55 +01:00
Andrea Maria Piana 8c7a6aa54d chore_: Add tag-version command 2024-04-10 11:43:13 +01:00
Alexis Pentori f9df853e4a
nix: Updating Nix Shell and Makefile to use nix-shell
Signed-off-by: Alexis Pentori <alexis@status.im>
2024-04-09 12:49:06 +03:00
Patryk Osmaczko c98acf76f9 fix: prevent migration check on nightly tests
mitigates: #4993
2024-03-28 14:41:18 +01:00
Patryk Osmaczko 30fe620ff0 chore: extend tests timeout
Due to an increased volume of tests, numerous test jobs have been timing
out. The timeout has been extended by 10 minutes.
2024-03-26 17:47:11 +01:00
Jakub Sokołowski 141cfadb93
feat(ci): add release tag parameter for docker builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-03-22 12:20:52 +01:00
Ibrahem Khalil 8c0e24dc26
Add favicons to external link previews (#4788) 2024-03-12 22:47:51 +02:00
Andrea Maria Piana c7533a7dab Extend migration check 2024-03-06 23:37:06 +00:00
Patryk Osmaczko 86ae80b108 fix: respect exit code from package run
Fixes the issue where the job succeeds even when there are always
failing tests.
2024-03-06 18:05:40 +01:00
Patryk Osmaczko abfaa3cf8d chore: run nightly tests in parallel 2024-02-29 18:23:20 +01:00
Patryk Osmaczko a068b64d5e chore: run nightly tests one by one
fixes: #4585
fixes: #4586
2024-02-28 22:00:26 +01:00
Anton Iakimov c3240b296c
ci: cleanup more build artifacts
Should be cleaning artifacts for more than 1+1 build for each branch.
2024-02-28 15:47:23 +01:00
Patryk Osmaczko fdd979096c chore: add capability to rerun failed tests
- Use `gotestsum` to generate junit test reports and re-run failed tests.
- Archive re-run reports in `${package_dir}/report_rerun_fails.txt`.
2024-02-27 11:00:29 +01:00
Jakub Sokołowski e6db622cdb
chore(ci): upgrade from nix 2.14 to 2.19
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-02-13 19:46:43 +01:00
Patryk Osmaczko e29332a374 chore: set extended timeout only for `protocol` package
It mitigates #4585 until the root cause is fixed.
2024-01-26 12:27:57 +01:00
Jakub Sokołowski e53f31ff1f
ci: update Jenins CI xcode label to use 15.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-01-11 16:32:56 +01:00
Anton Iakimov d2379aa129
ci: publish tests-nightly log/xml for debug (#4384) 2023-11-30 12:09:16 +01:00
Jakub Sokołowski 568371e836
chore(ci): update Nix Jenkins label to 2.14 version
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-29 15:15:51 +01:00
Anton Iakimov 1f076b9ff3
ci: set tests-nightly timeout to 5 hours 2023-11-27 12:42:09 +01:00
Anton Iakimov 2d251e9a08
ci: increase nightly runs and add more info to test stats (#4378) 2023-11-24 17:42:44 +01:00
Anton Iakimov e67bee6e7b
fix: nightly test runs timeout (#4358)
Need to multiply 30m by test runs to make sure it fill be enough.
2023-11-22 17:48:04 +01:00
Anton Iakimov c62957f621
feat: publish test_stats report (#4349)
Let's publish test_stats as a Jenkins report instead of printing to the
build log.
2023-11-22 11:37:05 +01:00
Anton Iakimov d1a9ad599c
feat: detect flaky tests
This reverts commit f12803ec95.
2023-11-21 17:03:37 +01:00
Anton Iakimov f12803ec95
Revert "feat: detect flaky tests"
There are signs that test runs became unstable.
Might be related to this commit.

This reverts commit 9f168eacea.
2023-11-21 16:34:43 +01:00
Anton Iakimov 9f168eacea
feat: detect flaky tests 2023-11-20 15:08:51 +01:00
Patryk Osmaczko f7042e4b9e refactor: extract layers in StatusMessage
Extracted:
- TransportLayer
- EncryptionLayer
- ApplicationLayer
2023-11-08 21:46:22 +01:00
Jakub Sokołowski 5aa9eb913d
fix: drop unnecessary wrappers, fix shebangs
Also make the hook installation run by default.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-11-07 18:02:06 +01:00
Ivan Belyakov cb3a88f93a fix(build): avoid removing untracked git changes by `make clean`
Use `make deep-clean` for deep cleaning
2023-11-03 07:37:48 +01:00
Jakub Sokołowski 494c6707ba
ci: parametrize DB port for unit tests
Otherwise we can't run tests in parallel on the same host. Also the
container name has to be different depending on executor.

Resolves errors like:
```
docker: Error response from daemon: Conflict.
    The container name "/status-go-test-db" is already in use by container "123...".
    You have to remove (or rename) that container to be able to reuse that name.
```
Resolves: https://github.com/status-im/status-go/issues/4040

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-09-18 19:54:21 +02:00
Anton Iakimov 7a9845c6e2
ci: hide `go test` output to the file on CI
Let's hide stdout of go tests to the files.
In case of failed test - it should be included in junit report anyway and shown in Jenkins.

Closes #3543
2023-09-13 10:53:38 +02:00
Igor Sirotin 5422b867f3
Hotfix: mark `Chat` and `Pin` archive messages as seen (#3992) (#3999) 2023-09-07 13:33:20 +03:00
Andrea Maria Piana 9a1443d716 Test generate handlers 2023-08-28 14:17:33 +01:00
frank 38415849cd fix generate_handlers_template.txt 2023-08-28 14:17:33 +01:00
Andrea Maria Piana 8dd1b66d69 Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
Jakub Sokołowski c0c74010e7
ci: set GOCACHE to ws tmp to avoid cache poisoning
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-08-18 18:01:19 +02:00
Jakub Sokołowski 78b61ffe2c
ci: drop wrongly calling make install-lint
Linting tools should already be installed by Nix, and we should use
them.

Also switching most shells to pure mode to see what happens.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-08-18 18:01:18 +02:00
Anton Iakimov 3a41a2550a
ci: generate junit reports for unit tests 2023-08-17 15:29:18 +02:00
Andrea Maria Piana 5f55a7bcc8 fetch develop before checking 2023-06-28 19:58:21 +01:00
Andrea Maria Piana 75c9374420 Add migration check script 2023-06-23 12:01:30 +01:00
Jakub Sokołowski c1509637a5
ci: bump tests timeout to 30 minutes
The test running time can be a bit unpredictable due to server load,
which can result in tests that finish in 5 minutes, or over 20.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-06-02 12:38:43 +02:00
Siddarth Kumar d37b605796
adjust padding for QR Images (#3510) 2023-06-01 13:41:01 +05:30
Jakub Sokołowski 589cc965e3
ci: add timeouts to all Jenkinsfiles
This is especially important for tests.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-29 12:40:08 +02:00
Andrea Maria Piana 959e370389 config: add new Push notifications fleet
Also drop no longer existing `eth.test` fleet.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-05-19 17:29:18 +01:00
Jakub Sokołowski c8161a5fa4
ci: upgrade Xcode version required to 14.3
Using `sandbox: false` for `nix.shell()` call to avoid failures in
Xcode wrapper derivation due to missing permissions:
```
error: builder for '/nix/store/xxx-xcode-wrapper-14.3.drv' failed with exit code 1;
       last 2 log lines:
       > /nix/store/yyy-stdenv-darwin/setup: line 1391: /nix/store/yyy-xcode-wrapper-14.3/bin/xcodebuild: Operation not permitted
       > We require xcodebuild version: 14.3
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-28 11:02:51 +02:00
Jakub Sokołowski 6fec4ea205
ci: upgrade Go to 1.19 in main Dockerfile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-27 13:13:46 +02:00
Jakub Sokołowski b7bf24b7e4
make: generalize building of Docker image
This way we can easily build an image for `spiff-workflow` for example:
```
make docker-image BUILD_TARGET=spiff-workflow DOCKER_IMAGE_NAME=statusteam/spiff-workflow
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-27 13:13:45 +02:00
Jakub Sokołowski 124dd73928
ci: drop go-1.19 label, Nix provides correct Go
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-19 20:18:10 +02:00
RichΛrd ba1ba1ac02
chore: use go 1.19 and bump go-libp2p (#3371)
* chore: use go 1.19 and bump go-libp2p

* chore: bump golangci-lint

* chore: update go version in shell.nix
2023-04-07 20:23:07 +02:00
Jakub Sokołowski 22bc76c39f
ci: use Nix shell for Linux library builds
Just noticed that was the only one not using it.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-04-06 01:12:14 +02:00
Siddarth Kumar 6ac2308ee1
Re-organise the code to be more modular (#3172) 2023-03-01 17:23:17 +05:30
Jakub Sokołowski 6f58ce2c61
ci: add commit to Docker image tag pushed
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 13:29:29 +01:00
Jakub Sokołowski 34f7354e6c
ci: upgrade Jenkins library to fix getting version
Fixed in:
https://github.com/status-im/status-jenkins-lib/pull/56

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 13:29:28 +01:00
Jakub Sokołowski 78c677742e
ci: delete Postgres DB container after tests run
Otherwise we end up with leftover containers hanging around:
```
admin@linux-03.he-eu-hel1.ci.devel:~ % d ps -a
CONTAINER ID   NAMES                IMAGE                 CREATED          STATUS
6c683f3083bf   boring_yonath        postgres:9.6-alpine   20 minutes ago   Created
b3d462925a91   dazzling_albattani   postgres:9.6-alpine   7 days ago       Created
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-21 13:57:10 +01:00
Jakub Sokołowski 08403df4c0
ci: use M1 Macs for iOS builds
Should be faster, and is the same a how we do it for mobile app.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-16 11:52:48 +01:00
Jakub Sokołowski 0048b70466
ci: use WORKSPACE_TMP for TMPDIR to not abuse /run
Because a lot of tests use `MkdirTemp` and do not clean up.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-01-03 16:54:22 +01:00
Jakub Sokołowski 9dd80e7f1e
ci: use Nix shell to provide Android SDK for builds
Installing the SDK via Ansible is prone to error and not exactly
reproduceable. This way we can also track the exact tooling version as
used in Status Mobile app:
https://github.com/status-im/status-mobile/blob/develop/nix/pkgs.nix

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-05 15:48:27 +01:00
Jakub Sokołowski 5b941cab0c
ci: drop unnecessary go get command
Not sure why that was added at some point, but it doesn't seem
necessary, and even if it was `go install` should be used.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-24 11:26:38 +02:00
Richard Ramos 11e432d341
feat: allow passing variables to docker-compose and fix var name (#2821) 2022-09-15 15:41:00 -04:00
Samuel Hawksby-Robinson 41cb9d7bea Added httptest.NewServer to DecodeFromURL and CryptoOnRamp tests 2022-09-09 15:07:48 +01:00
Samuel Hawksby-Robinson 399090a44b Added fix for pinging a remote service in tests 2022-09-09 15:07:48 +01:00
Samuel Hawksby-Robinson 45b287370a Implemented more comprehensive file compression to handle large files 2022-09-05 16:06:04 +01:00
yqrashawn d1ef1a3e31
fix: apt -> apt-get (#2775)
there's a default /usr/bin/apt cli in macos
2022-08-03 11:26:31 +02:00
Jakub Sokołowski 6d38b86059
scripts: fix protobuf version from Nix
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-26 17:36:10 +02:00
Jakub Sokołowski 8191f24ef3
docker: upgrade Golang version to 1.18
Otherwise it fails with:
```
build github.com/status-im/status-go/cmd/statusd: cannot load github.com/lucas-clemente/quic-go/internal/qtls: no Go source files
```

We also add missing `g++` compiler for `go-libutp` to fix:
```
go build github.com/anacrolix/go-libutp: g++: exec: "g++": executable file not found in $PATH
```

As well as install `libgcc` and `libstdc++` to avoids failures like this:
```
Error loading shared library libstdc++.so.6: No such file or directory (needed by /usr/local/bin/statusd)
Error loading shared library libgcc_s.so.1: No such file or directory (needed by /usr/local/bin/statusd)
Error relocating /usr/local/bin/statusd: _Znwm: symbol not found
Error relocating /usr/local/bin/statusd: _ZdlPvm: symbol not found
Error relocating /usr/local/bin/statusd: _Unwind_Resume: symbol not found
Error relocating /usr/local/bin/statusd: __gxx_personality_v0: symbol not found
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-26 13:07:07 +02:00
Andrea Maria Piana 4d15ae8a85 Upgrade to go 1.18 2022-05-11 12:39:54 +01:00
Jakub Sokołowski 57e5fd66fa ci: pin builds to hosts with specific Go version
Otherwise Go version upgrades are a pain due to randomly hitting a host
with newer version of Go compiler.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-11 12:25:35 +02:00
Jakub Sokołowski ede86b68ce gen_config.sh: add default retenetion of 30 days
Related to this question on our Discourse:
https://discuss.status.im/t/status-node-growing-storage-size/2970

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-01-25 19:28:54 +01:00
Jakub Sokołowski 8089c03464 ci: specify macos host architecture in labels
Since now we have a 5th Gen Mac Mini with `arm64` M1 CPU.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-29 11:34:51 +01:00
Jakub Sokołowski bbafc704b1 ci: fix release process broken by missing suffix
This fixes a type of CI failure:
https://ci.status.im/job/status-go/job/manual/1010
Which results in:
```
java.lang.NoSuchMethodError: No such DSL method 'suffix' found among steps ...
```
Also use release functions provided by `status-jenkins-lib`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-29 08:51:32 +02:00
Jakub Sokołowski 116f76e189 Makefile: pin tool versions, use go install
Using latest version every time is just asking for weird random issues.

This commit in `gomobile` has made Go `1.16` required:
80cb72e7af

Since we upgarded Go to 1.16 on CI hosts we can now use the recommended
method of installing tools, which is using `go install`.

In addition to that I've pinned other tools that we install to specific
versions, and dropped use of `modvendor` fork thanks to merging of:
https://github.com/goware/modvendor/pull/13

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-17 14:39:30 +02:00
Jakub Sokołowski 7594dd4800 install_deps.sh: fix format, add NixOS support
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-17 14:39:30 +02:00
Anthony Laibe 07651d4d06
feat: enable wallet without network binding (#2349)
* feat: enable wallet without network binding

* feat: make transfer network aware

* feat: allow to pass initial networks via config

* fix: nil check and feed

* feat: Add documentation with better function name

* fix: do not init the manager more than once

* fix: PR feedbacks

* Bump version

* Update Jenkinsfile.tests

* Convert int to string

Co-authored-by: RichΛrd <info@richardramos.me>
2021-09-09 16:28:54 +02:00
Jakub Sokołowski 034f3bfec3 get_enode.sh: --retry-connrefused instead --retry-all-errors
The `--retry-all-errors` flag was added only in Curl `7.71.0`:
https://github.com/curl/curl/commit/b995bb58

So it fails on older distrubutions with:
```
curl: option --retry-all-errors: is unknown
curl: try 'curl --help' or 'curl --manual' for more information
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-30 14:24:29 +02:00
Jakub Sokołowski 5c408f8ce4 compose/systemd: fix completion of make targets
Something goes wrong when parsing and GRN definition is treated as target.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski 06587bd1bc get_enode.sh: add retries to account for slow start
Containers can be slow to start, but still want that enode.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski b631b93bd1 compose: upgrade image, fix RPC listening address
Also move data dir to folder named after contaienr.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski cd2b53643d rcp.sh: curl wrapper for easier RPC calls
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski e4540a0853 add 3 instead of 2 static nodes to default configs
Each fleet has 3 data centers, so it makes sense to use 3.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski 315f63ea43 gen_config.sh: default HTTPHost to localhost
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00