Commit Graph

129 Commits

Author SHA1 Message Date
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
Andrea Maria Piana 9a1443d716 Test generate handlers 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
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
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 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
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
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 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
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
Andrea Maria Piana 81b58b39ec Remove e2e tests from steps 2021-07-20 10:57:38 +02:00
Samuel Hawksby-Robinson cab6281dc5
Adding postgres docker to jenkins test (#2225)
* wip

* file rename

* Adding postgres docker to jenkins test

* update and fix to jenkins file

* More fixing

* tinker

* more tinkering

* agent in stage

* agent in stage fix

* Integrated Andrea's Docker compose work

* Rework to include dockerfile into jenkins unit test

* Customer dockerfile agent

* Change to ENTRYPOINT

* No dir() in Unit Tests

* Removal dir property of dockerfile

* Added lable to agent.dockerfile

* agent set only at stage level

* Added Jakub's suggestion

* removed stage level agent

* replaced docker host name with default 127.0.0.1

* Fix of old NewWhisperEnvelope

* removed user and password settings from postgres connection

* Set explicit postgres user and password

* Change postgres creds to be more generic

* Removed unneeded docker files

* POSTGRES_HOST_AUTH_METHOD because we hate passwords

* chicken chicken chicken

* indents 2 spaces
2021-06-09 11:16:04 +01:00
Jakub Sokołowski 91620b9982 ci: refactor to use status-jenkins-lib
This should fix issues with re-running builds while skipping some initial stages.

Also removes two libraries we made use of before.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-10 14:04:55 +02:00
Jakub Sokołowski aab93a6abb ci: lower number of remembered jobs to 5
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-05 09:11:23 +01:00
Jakub Sokołowski 7ba89867ac ci: keep only last 10 builds to reduce size
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-09-08 19:49:24 +02:00
Andrea Maria Piana cbaf523b0e Address feedback 2020-06-03 11:07:04 +02:00
Jakub Sokołowski fc841f884a add config for new eth.prod fleet
also move _assets/ci/update-fleet-config.sh to scripts

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 14:51:26 +01:00
Pedro Pombeiro 0ed66b98ae Fail build if `make vendor` hasn't been run 2019-12-30 13:25:12 +01:00
Adam Babik 94228bce2e
Remove xgo builds (#1628) 2019-10-05 11:13:53 +02:00
Jakub Sokołowski 4f1a3283e6
update one missing location where old pkg dir is used
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-08-20 09:28:48 -04:00
Jakub Sokołowski 652d8a67b6 use out for output, use CGO_ENABLED=1 and GO111MODULE=off for Android and iOS (#1574) 2019-08-20 09:05:15 +02:00
Jakub Sokołowski 5f763439cb add a check for already existing release tag
also run cleanup in post-always Jenkinsfile block

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-30 09:26:34 -04:00
Adam Babik 0e13406151 remove GOCACHE=off from Jenkinfile.xgo 2019-06-12 13:12:00 +02:00
Jakub Sokołowski 012a1b54bc add /usr/local/go/bin as proper Go path
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-12 13:12:00 +02:00
Adam Babik c9e99c432d migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
Jakub 2c0c0fff24 fix release builds (#1440)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-15 11:57:06 +02:00
Jakub Sokołowski 2af27dc6b3 build regular linux binary with xgo for uploading to GitHub
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-14 18:14:02 +02:00
Jakub bf209cff85 don't overwrite linux build variable with docker build (#1431)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-29 18:49:18 +01:00
Jakub Sokołowski b80a9f5aaa add explicit TMPDIR, otherwise go get fails
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-28 09:55:34 +01:00
Jakub Sokołowski d38a07f679 add Jenkinsfile.docker for pushing new images
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-26 09:14:56 +01:00
Dmitry 9441f798bb Remove mock step from ci pipeline 2019-03-15 08:14:53 +02:00
Jakub Sokołowski cbe50f557c move running tests to a separate jenkins job
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-05 08:11:32 +01:00
Jakub 0238d84924 declare all parameters, fix names of files on release (#1392)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-25 15:59:12 +01:00
Jakub Sokołowski 51ff6395b8 fix env variables pointing at android ndk for gomobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-25 12:45:06 +01:00
Andrea Franz a249151d05 add LoginWithKeycard to mobile pkg (#1372) 2019-02-11 21:20:59 +01:00
Jakub Sokołowski de269e5830 add build status notifications like in status-react
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-11 17:16:21 +01:00
Ivan Daniluk 4f3f5ee574 Gomobile support (#1164) 2019-02-01 18:02:52 +01:00
Jakub Sokołowski 7d651afaae add desktop build step
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-11 09:30:35 +01:00
Andrea Maria Piana afc3017e07
Notify user when the device is missing (#1298)
* Notify user when the device is missing

* Update services/shhext/chat/encryption.go

Co-Authored-By: cammellos <andrea.maria.piana@gmail.com>
2018-12-05 09:22:49 +01:00
Jakub Sokołowski 49cfcd3e24 stop adding 'v' before the contents of VERSION file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-03 14:55:45 +01:00
Jakub Sokołowski d61e838235 use VERSION file for suffix when releasing
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-27 19:26:09 +01:00
Jakub Sokołowski 6b09eea749 install xgo in setup target
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 14:07:48 +01:00
Jakub Sokołowski 07eb60df7d
pyt timestmap before commit for better ordering
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 13:33:07 +01:00
Jakub Sokołowski def3af61a7
remove unused call
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 09:05:33 +01:00
Jakub Sokołowski d1847a3adc change Jenkinsfile to use parallel declarative format
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-22 10:12:20 +01:00
Pedro Pombeiro 92748f1334 Add `canary-test` make target to test beta fleet mailservers. Closes #1274 2018-11-19 19:02:32 +01:00
Andrea Maria Piana 58bd36e79e
Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
Adam Babik ac8da3c0f0
Use patched go-ethereum from our fork instead of patching it on-the-fly (#1184)
* update to 1.8.16
2018-09-27 21:16:15 +02:00
Pedro Pombeiro 6a1cd7f2b0
Fix xgo creating files as `root` (#1210) 2018-09-24 22:21:13 +02:00
Pedro Pombeiro 99d7bc207d
Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
Pedro Pombeiro 4e7ae20eae
Add script to update fleets static JSON. Closes #1188 (#1189) 2018-09-14 10:46:34 +02:00
Adam Babik 4e386f4097
Update version format of artifacts in Jenkins (#1173) 2018-08-29 12:52:19 +02:00
Adam Babik 16c7b94eb5
Add labels to docker images and add Jenkinsfile to build docker images (#1160)
* fixed generating `params.Version`
* added labels to all Docker images including git_commit and the author of the build (using `$USER` env variable)
2018-08-24 12:25:07 +02:00
Adam Babik 7c70ce02bc
allow building status-go from tags (#1122) 2018-08-10 10:28:04 +02:00
Adam Babik e9c2292776
Switch mockgen to reflect mode (#800)
Switch mockgen to use reflect mode as source mode does not support vendored packages.
2018-04-05 15:14:47 +02:00
Alex Kohler c5b9f00467 Adding update-geth target (#673) 2018-02-20 19:04:25 +01:00
Caner Çıdam 15c72f3c6b Apply geth patches on the fly #653 (#660) 2018-02-14 18:44:27 +01:00
Adam Babik 404f633f2b add doc string to get-docker-image-tag.sh 2018-02-13 10:30:47 +01:00
Adam Babik 9ed2663b6e add docker-image-tag target to Makefile 2018-02-13 10:30:47 +01:00
Caner Çıdam a4c36fe96a Move non-go related files to the `_assets` folder. #621 (#630) 2018-02-09 14:38:18 +01:00