Commit Graph

288 Commits

Author SHA1 Message Date
Jakub Sokołowski 035e07f7be
upgrade to Xcode 11.4
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-16 12:56:03 +02:00
Jakub Sokołowski 5fab3268bd
allow lint stage fail in CI and still upload build result
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-27 09:19:46 +01:00
Jakub Sokołowski efc2fa9cf2
use the proper source of publish method
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-25 17:10:24 +01:00
Jakub Sokołowski 0306f1cfbd
ci: re-add Play Store upload case for release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-25 11:17:06 +01:00
Jakub Sokołowski 4a7c03b1cc
avoid building jsbundle twice, drop jsbundle stage
Because we run nix/scripts/clean.sh after building JSBundle it is
removed from Nix store and can't be reused in the Bundle stage.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-17 22:11:54 +01:00
Jakub Sokołowski 4e567cf782
use status-react-jenkins as CI library
This PR extracts all the ci/*.groovy scripts into a separate private repo located at:
https://github.com/status-im/status-react-jenkins

The main reasons for a separate repo are:

* Hiding the internal details of our CI setup
* Hiding names of Jenkins credentials available in CI jobs
* Lowering attack surface for malicious external contributors
* Increasing focus on PRs related to CI setup

You can read more about how Jenkins pipeline shared libraries work here:
https://jenkins.io/doc/book/pipeline/shared-libraries/

In simple terms I've added the repo to the main Jenkins configuration in "Global Pipeline Libraries" section and load it using:

  library 'status-react-jenkins@master'

Which makes globally available all of the libraries defined in the `vars` directory of that repo.
This also eliminates the need for statements like `android = load 'ci/android.groovy'`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-11 19:11:36 +01:00
Jakub Sokołowski 8b3c7f29b2
fix bundle install by disabling Nix sandbox
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-06 12:36:25 +01:00
Jakub Sokołowski de53581ef4
nix: don't generate keystore inside of Nix build
changes:
- Stops scripts/generate-keystore.sh runnig for every new TARGET=android shell
- Moves running scripts/generate-keystore.sh to keystore Makefile target
- Makes generate-keystore.sh accept STATUS_RELEASE_STORE_FILE as env variable
- Fixes error about missing lsof from start-react-native.sh
- Fixes error about unknown -keystore command in scripts/generate-keystore.sh
- Fixes getting OS_NAME without calling Nix shell
- Fixes getting TMP_BUILD_NUMBER without calling Nix shell
- Adds lsof used in start-react-native.sh to Android release Nix derivation
- Simplified how nix/scripts/build.sh appends the --keep flag
- Made use of colors.sh in more scripts

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-05 10:56:54 +01:00
Jakub Sokołowski efa420def4
disable playstore upload
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-03-05 10:52:19 +01:00
Jakub Sokołowski 8ac20b442e
don't use sandbox for Nix Cache builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-29 12:28:40 +01:00
Jakub Sokołowski 001264bd1a
fix creation of pkg folder for latest.json
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-28 15:07:53 +01:00
Jakub Sokołowski 8abea59196
don't use Jenkins master host for combined jobs
This lowers the risk of someone extracting sensitive data from master.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-27 17:58:19 +01:00
Jakub Sokołowski cb78293db7
use Android keystore from Jenkins credentials
This way we don't have to store it on individual CI hosts.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-27 06:54:28 +01:00
Jakub Sokołowski 1c81d6e190
nix: force sandbox in CI
For more details see:
https://github.com/status-im/security-internal/blob/master/overview/infra.md#continuous-integration-ci

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-26 11:10:19 +01:00
Jakub Sokołowski 90bae33689
e2e: fix handling of GitHub token
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-02-24 14:58:09 +01:00
Churikova Tetiana b8c7e44326
fix e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-02-24 12:32:08 +01:00
Jakub Sokołowski 8ffbf61b79
e2e-tests: update GitHub token used
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-18 20:50:21 +01:00
Jakub Sokołowski 3d52d1cb9c
jenkins: build() doesn't like mixed arguments
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-14 17:53:02 +01:00
Jakub Sokołowski dc0d0b59cb
re-enable site updates on nightly builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-12 20:55:25 +01:00
Jakub Sokołowski 128f44f58b
fastlane: disable oldest_build_allowed for TestFlight clean
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-29 15:58:17 +01:00
Jakub Sokołowski c91fe5fa82
ci: use full timestamp for iOS CFBundleVersion
And we have to trim the one used for Android.
For more details see:
>Warning: The greatest value Google Play allows for versionCode is 2100000000.
https://developer.android.com/studio/publish/versioning

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-23 19:42:19 +01:00
Jakub Sokołowski a02a0429c3
fastlane: use our fork of fastlane-plugin-diawi
With it we can set last_hope_attempts_backoff to 5 seconds.
This should fix issues with upload wait timing out.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-21 21:18:16 +01:00
Jakub Sokołowski c348337150
ci: fix GitHub upload by not changing dir when uploading
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-21 14:02:44 +01:00
Jakub Sokołowski 72823c2c3e
ci: use Diawi URL for iOS only if it's set
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-21 10:25:41 +01:00
Jakub Sokołowski 5e6ab5d0d9
ci: fix GitHub release by using glob for all files
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-21 09:02:02 +01:00
Jakub Sokołowski 23708f1487
ci: don't use pure shell for Play Store upload
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-17 18:21:53 +01:00
Jakub Sokołowski b402dc9c62
upgrade XCode to 11.3.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-14 17:23:19 +01:00
Pedro Pombeiro d62cda4d66
nix: Add support for reading .env feature flags 2020-01-14 15:16:30 +01:00
Jakub Sokołowski 6a90d76c98
fix edge case where PR e2e builds are not rebased
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-13 13:55:44 +01:00
Jakub Sokołowski aca703a011
major nix refactor
Changes:
- Adds a new `nix-gc` Makefile target for removing old packages
- Moves all `nix/*.sh` files to `nix/scripts/*.sh` to make things more tidy
- Renames `TARGET_OS` into `TARGET` and makes it effective only with `nix/scripts/shell.sh`
- Renames `target-os` Nix argument to just `target` and makes it effective only with `shell.nix`
- Drops `IN_CI_ENVIRONMENT` env variable which was useless
- Drops use of `target-os` argument outside of `shell.nix` (with few exceptions, but just in naming)
- `nix/platform.nix` has been made obsolete and removed
- Moves the definition of all major targets to `nix/targets.nix`
- Moves the definition of all major shells to `nix/shells.nix`
- Makes `default.nix` and `shell.nix` just thin wrappers around `nix/default.nix`
- `nix/nixpkgs-bootstrap.nix` has been moved to `nix/pkgs.nix`
- All package and tool overrides have been moved to `nix/pkgs.nix`
- Explicit passing of contents of `pkgs` has been removed in favor of `callPackage` doing it for us
- `nix/bootstrapped-shell.nix` has been moved to `nix/tools/mkShell.nix`
- A new `mergeSh` tool has been added to `pkgs` from `nix/tools/mergeSh.nix`
  - This tool is used to merge shells created using `mkShell`
- `mobile/targets/jsbundle.nix` has been moved to `mobile/android/jsbundle/default.nix`
- Moves `status-go` version sanitization to `nix/status-go/utils.nix`
- Renames version to rawVersion and versionName to cleanVersion in status-go derivation
- Ports nix/mobile/ios/install-pods-and-status-go.sh to Nix sub-shells
- Moves adjustment of `inotify/max_user_watches` out into `scripts/inotify_fix.sh`
- Makes iOS builds use the Nix version of Fastlane

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-12 18:51:21 +01:00
Jakub Sokołowski e8150d7187
small fix for TR_CASE_IDS parameter
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-05 11:00:40 +01:00
Jakub Sokołowski 72dfb5189e
upgrade Xcode: 11.1 > 11.2.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-04 17:45:22 +01:00
Jakub Sokołowski f30f0ed139
add optional TR_CASE_IDS argument to e2e PR tests
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-03 22:39:32 +01:00
Jakub Sokołowski d930c51dfa
use regular CI linux hosts for end-to-end tests
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Serhy <sergii@status.im>
2019-12-02 13:04:39 +02:00
Jakub Sokołowski 182bfef295
don't use pure shell for uploads, causes SSL issues
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-27 11:23:07 +01:00
Jakub Sokołowski b32dd113f6
nix: upgrade nixpkgs
Also:
- upgrade Go: 1.12 > 1.13
- upgrade Android SDK: 28.0.3 > 29.0.2
- nix: stop using system Fastlane for iOS builds
- nix: include CocoaPods in shell for iOS
- nix: concatenate shellHooks correctly
- fix gomobile status-go build by setting GO111MODULE=off
- fix gradle accepting empty STATUS_GO_SRC_OVERRIDE value
- don't use a pure shell for uploadToSauceLabs()

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:41 +01:00
Jakub Sokołowski 261b81c8a7
nix: upgrade: 2.2.1 > 2.3.1
also drop toolversion scripts and functions

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:22 +01:00
Jakub Sokołowski fe7f6c87ab
nix: fix nix-cache builds on MacOS
symlink from /opt/nix requires this setting

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:22 +01:00
Jakub Sokołowski f6b7f637f0
disable desktop builds as work on them is on hold
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-26 16:30:21 +01:00
Jakub Sokołowski a6c2518de7
drop overriding .env values with CI parameters
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-06 22:17:40 +01:00
Jakub Sokołowski 05ee65b6fa
don't use SHA1s as status-go version
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-06 21:46:02 +01:00
Jakub Sokołowski 647bde7c6b
fix type of shell used for s3cmd uploads
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-18 11:27:37 +02:00
Vitaliy Vlasov f28fd8fc9c
customize TMPDIR and clean it
Also:
- parallelize upload and achive stages
- fix s3cmd uploads for combined Jenkinsfile
- fix failing TestFlight clean job

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-18 09:40:11 +02:00
Jakub Sokołowski afc2412514
desktop builds need GnuPG
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-17 11:03:41 +02:00
Pedro Pombeiro 8e90103e96
nix: Upgrade expected Xcode version to 11.1
Also:
- nix: Disable symlink store check
- Add comments to dependabot config file

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-15 18:40:26 +02:00
Serhy c872c5c487
Enable high priority tests in PRs
Also:
- add ci/tests/Jenkinsfile.e2e-prs
- remove maybe_later_button click after new onboarding
- update job name for e2e tests
- Fix testrail checklist creationg for nightly builds

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-14 13:52:49 +02:00
Volodymyr Kozieiev ace4b5a161
Desktop works with react-navigation v3
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2019-10-02 10:19:37 +03:00
Jakub Sokołowski 599ed98093
fix which APK is published for e2e builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-01 23:42:16 +02:00
Jakub Sokołowski 973623f4c8
build multiple APKs for different architectures
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-30 13:59:42 +02:00
Jakub Sokołowski 00de482767
re-enable desktop builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-19 17:41:50 +03:00