Commit Graph

300 Commits

Author SHA1 Message Date
Andrea Maria Piana 1714970e4e
Use Infura token pulled from environment
This way we can use different token for e2e, release, and devel builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-06-19 19:26:40 +02:00
Jakub Sokołowski 284c26055f
update Jenkins library to allow vebose Fastlane calls
For more details see status-react-jenkins change:
https://github.com/status-im/status-react-jenkins/pull/7

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-06-02 18:50:43 +02:00
Jakub Sokołowski 2fcf0964f8
nix: fix nix-cache builds using wrong status-go targets
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-16 15:31:15 +02:00
Jakub Sokołowski ed4d0a1ed9
nix: refactor updating Gradle dependencies
changes:
- Moved Gradle deps setup to `nix/deps/gradle`
- Dropped `nix/mobile/android/maven-and-npm-deps/maven`
- Used GNU Parallel to optimize `nix/deps/gradle/generate.sh`
- Move Maven+Node shell setup from `release-android.nix` to Android shell
- Moved AAPT2 patching to `nix/pkgs/aapt2`
- Drop `patchPhase` and `gradlew` use from `release-android.nix`
- Simplify symlinking `{mobile,desktop}/js_files/*`
- Add new `nodejs` shell and merge it with `clojure` and `gradle`
- Re-created Gradle deps files with new scripts:
  - `nix/deps/gradle/proj.list`
  - `nix/deps/gradle/deps.list`
  - `nix/deps/gradle/deps.urls`
  - `nix/deps/gradle/deps.nix`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:30 +02:00
Jakub Sokołowski a96b35996f
drop scripts/copy-translations.sh as useless
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-14 09:46:22 +02:00
Jakub Sokołowski 157d054e33
jenkins: allow combined jobs to copy artifacts
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-12 09:14:49 +02:00
Gheorghe Pinzaru c34df26e19
Move icons assets into resources
Fix logout icon usage

Update icons docs

Remove scripting

change jenkins

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-05-08 14:12:52 +03:00
Jakub Sokołowski 3ae5f87be3
ci: add Jenkinsfile for updating Play Store metadata
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-05 19:40:45 +02:00
yenda d5ef218584
use shadow-cljs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: yenda <eric@status.im>
2020-04-30 15:43:46 +02:00
Jakub Sokołowski 7b6b620ceb
nix: use overlays instead of packageOverrides
Changes:
- Add `nix/DETAILS.md` for more in-depth info
- Rename some of `config.status-im` variables
- Drop `env` argument for Android build
- Use `overlays` instead of `packageOverrides`
- Move the `pkgs` overlay to `nix/overlay.nix`
- Move `nix/status-go/utils.nix` to `nix/tools`
- Make `shell.nix` use the `shells.default` only
- Use `default.nix` as target for `nix/scripts/shell.sh`
- Make `nix/scripts/shell.sh` use `--attr` instead of `target`
- Drop the `target` argument in favour of using `--attr`
- Drop unnecessary `src` from `nix/mobile/ios/default.nix`
- Move `mkShell` and `mergeSh` under `lib`
- Move `patched-go` package to `nix/pkgs` directory
- Move `gomobile` package to `nix/pkgs` directory
- Move `ANDROID_ABI_SPLIT` to `config.status-im.android.abi-split`
- Move `ANDROID_ABI_INCLUDE to `config.status-im.android.abi-include`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-29 11:53:33 +02:00
Churikova Tetiana d9862e2cef
upgrade e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-04-22 13:17:03 +02:00
Jakub Sokołowski d68b757589
upgrade Xcode to 11.4.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-16 22:13:47 +02:00
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