Commit Graph

126 Commits

Author SHA1 Message Date
shashankshampi 14dcd29eee test_: Code Migration from status-cli-tests
author shashankshampi <shashank.sanket1995@gmail.com> 1729780155 +0530
committer shashankshampi <shashank.sanket1995@gmail.com> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue https://github.com/status-im/status-mobile/issues/21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR https://github.com/status-im/status-mobile/pull/21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes https://github.com/status-im/status-desktop/issues/16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue https://github.com/status-im/status-mobile/issues/21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR https://github.com/status-im/status-mobile/pull/21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes https://github.com/status-im/status-desktop/issues/16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <jakub@status.im>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <jakub@status.im>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
2024-10-30 14:49:26 +05:30
Igor Sirotin 9f564010da
chore_: configure tests develop job (#5956)
* refactor_: rename isTestNightlyJob

* chore_: configure develop tests job

* chore_: isPRJob and getAmountToKeep
2024-10-19 12:01:28 +03:00
Igor Sirotin c1dd9397f7
refactor_: remove generated files from source control (#5878)
* fix_: gitignore generated files

* chore_: delete generated files

* fix_: update go generate instructions

* feat(Makefile)_: clean-generated-files target

* feat(Makefile)_: `generate` target

* fix(Makefile)_: dependent generate target

* ci_: run generate, update docker file deps

* fix(Makefile)_: remove `clean-generated-files` target

* fix(Makefile)_: simpler GO_GENERATE_CMD arg

* fix_: temp workspace GO_GENERATE_FAST_DIR
2024-10-03 20:59:44 +01:00
Igor Sirotin ae2ec8f369
chore_: rename integration tests to functional tests (#5908) 2024-10-03 14:51:51 +01:00
Igor Sirotin d794e43347
feat_: functional tests coverage (#5805)
* feat_: functional tests coverage

* fix_: codecov yaml
2024-09-24 16:33:26 +01:00
Igor Sirotin ea290d97ef
feat_: Integrate Codecov (#5796)
* feat_: added `codecov-cli` nix derivation

* feat_: added simple codecov configuration

* feat_: add UNIT_TEST_REPORT_CODECOV ci flag

* feat_: upload logs and reports to codecov
2024-09-05 10:11:16 +01:00
Igor Sirotin 7623f68679
fix_: nightly test runs (#5791)
* fix_: run nightly protocol tests as separate processes

* fix_: calculate timeout

* fix_: TEST_WITH_COVERAGE_REPORTS_DIR

* fix_: proper filter protocol package

* chore_: log run_unit_tests stages

* fix_: coverage reports merging

* chore_: more logs

* chore_: fix typo

* chore_: increase test timeouts

* fix_: properly filter packages

* feat_: UNIT_TEST_DRY_RUN flag for tests run

* fix_: UNIT_TEST_PACKAGES_FILTERED calculation

* fix_: remove the force-run waku test first

* fix_: delete unused file
2024-09-03 12:50:09 +01:00
Igor Sirotin 85fba77b7d
chore_: bring back jenkins commit check (#5777) 2024-08-27 23:40:17 +01:00
Igor Sirotin 8491e76a34
fix_: separate commit message check (#5773)
* chore_: add github action conventional commits

* chore_: remove commit check from tests run

* fix_: continue checking commits when breaking change found

* fix_: don't run check on pr edit
2024-08-27 22:42:06 +01:00
Igor Sirotin cc722359b5
chore_: run tests concurrently (#5731)
* chore_: fake flaky tests

* chore_: run tests in parallel (wip)

* chore_: test-with-coverage-old

* chore_: lint-fix fake flaky tests

* chore_: cleanup

* chore_:

* chore_: lint-fix fake flaky tests

* chore_: enable running some tests sequentially

* chore_: enable back all tests

* chore_: no sequential packages

* chore_: cleanup

* chore_: remove fake flaky packages

* chore_: cleanup

* chore_: attempt UNIT_TEST_COUNT as test count

* chore_: spawn multiple processes

* fix_: don't spawn multiple processes

* chore_: revert redirect_stdout changes

* fix_: update Jenkinsfile

* fix_: use env variables

* fix_: typo
2024-08-26 10:03:26 +01:00
Patryk Osmaczko 8914a79284 chore(ci)_: adjust nightly tests build retention to 14 runs
Increased build and artifact retention, as more context is usually
needed when analyzing flakiness thorugh nightly tests.
2024-08-21 15:32:55 +02:00
Jakub Sokołowski bc984e0cb1
chore(ci)_: fix formatting, bump library version
Also drop unused `_assets/ci/validate-vendor.sh` script.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-08-20 09:40:22 +02:00
Igor Sirotin ef85895f65
fix_: pass proper version to params (#5735)
* fix_: pass proper version to params

* fix_: use --dirty flag

* fix_: delete version_test

* fix_: pass proper version to artifacts
2024-08-19 16:47:11 +01:00
richΛrd bb6d5f602b
chore_: fix `TestBasicWakuV2` (#5718) 2024-08-15 14:43:37 -04:00
Igor Sirotin dd443b030d
fix(commit_check)_: use proper base branch (#5700) 2024-08-13 10:58:48 +01:00
Igor Sirotin 325429b218
chore_: add test-coverage.html report (#5490) 2024-07-10 13:37:50 +01:00
Jakub Sokołowski 0d82dbe240 feat(ci)_: add Jenkinsfile, Dockerfile for RPC tests
Also add curl to Docker image.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-04 16:14:02 +02:00
Jakub Sokołowski 5fd1c06bce
fix(ci)_: bump lib to 1.9.1 to make uploads public
Depends on:
https://github.com/status-im/status-jenkins-lib/commit/ab9aa93c

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-01 19:33:26 +02:00
Jakub Sokołowski 6e52565356
feat(ci)_: use s5cmd instead of s3cmd
It's actively maintained and has better concurrency support.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-01 09:49:10 +02:00
Jakub Sokołowski 769ea7799b
feat(ci)_: add ansiColor(xterm) for nice colors
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-01 09:47:53 +02:00
Jakub Sokołowski b6d2b9eb53
fix(ci)_: fix Nix version label and bump library
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-06-26 17:55:26 +02: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
Igor Sirotin 12dfe285d7
chore_: archive test coverage result as artifact (#5280) 2024-06-03 17:31:27 +01: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 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
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
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 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
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