Commit Graph

130 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 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
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
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 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 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 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 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
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
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
yenda c3dd950286
remove realm
Signed-off-by: yenda <eric@status.im>
2019-09-09 18:40:15 +02:00
Andrey Shovkoplyas e4c0bcfc3d
disable coverage
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-12 15:05:57 +02:00
Pedro Pombeiro acf6278383
nix: Use nix/build.sh for release-android make target
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-26 16:01:06 -04:00
Pedro Pombeiro 2ac0630ef8
nix: fix target OS for add-nix-gcroots.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-25 13:47:43 -04:00
Jakub Sokołowski 2acd5b4cb0
rename prod-build to jsbundle so it means something
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-24 11:56:03 -04:00
Pedro Pombeiro a7fd659d84
nix: Wrap gradle, npm packages, `lein prod-build` and `gradle assembleRelease` in Nix expressions to improve reproducible builds with constant build paths 2019-07-15 16:08:02 +02:00
tbenr b78bb456a4
add coverage test
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-10 16:15:44 -04:00
Pedro Pombeiro f5be5c3a69
Ensure watchman watch is removed after Jenkins build 2019-06-13 15:03:44 +02:00
Jakub Sokołowski 49d5a3082e run checks and build steps in parallel
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-10 22:07:55 -04:00
Jakub Sokołowski d75a412ae8
don't rebase manual builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-06-07 18:45:28 +02:00
Pedro Pombeiro 1457f0f017
Some changes from the node2nix test branch that don't need to be there
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-06-06 19:13:31 +02:00
Roman Volosovskyi daacccb512
[Android, iOS] Advanced ClojureScript compilation 2019-05-30 21:23:31 +03:00
Jakub Sokołowski 0e8e5a51ba
refactor nix_sh to give it optional Map arguments
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-05-14 16:06:16 +02:00
Pedro Pombeiro 9d1e266145
Use fastlane Nix package instead of ruby/bundler for Android
- iOS still has issues with native Ruby dependencies

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-06 11:57:12 +02:00
Jakub Sokołowski 78a1b025ac
don't use docker containers on linux, nix rules all
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-16 21:35:51 +02:00
Pedro Pombeiro a436793fa0
Consolidate TARGET_SYSTEM_NAME and TARGET_PLATFORM with TARGET_OS
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-04-15 20:31:38 +01:00
Jakub Sokołowski 55abf20645
modify .env settings using Jenkins params
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-04-11 19:49:13 +02:00
Pedro Pombeiro aeacbd928e
Separate logic into shell.nix and derivation.nix to fix `nix build` command
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-04-11 17:44:29 +02:00
Pedro Pombeiro 65e6e80349
Create Nix package for building status-go 2019-04-09 12:44:39 +02:00
Pedro Pombeiro 738521092b
Call make-prepare also on Desktop CI builds
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-03-22 16:26:58 +01:00
Pedro Pombeiro c53553e137
Use nix to download Desktop bundle base images
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-03-22 15:06:14 +01:00
Pedro Pombeiro fc5c8c2dc0
Add Dockerfile to generate image used in Jenkins 2019-03-22 15:05:27 +01:00
Pedro Pombeiro 015f02ae84
Implement target-dependent installing of Nix dependencies 2019-03-21 13:57:01 +01:00
Jakub Sokołowski 9f601e851d
add jenkinsfile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-21 13:57:00 +01:00
Jakub Sokołowski 1edc39e46f
re-add cache folders in /var/tmp, re-create bundle cache every time
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-21 12:45:45 +01:00
Jakub Sokołowski 257f03bca7
upgrade ruby to 2.5
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-21 09:22:32 +01:00
Jakub Sokołowski 0887a5299a
add github releases for mobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 19:16:15 +01:00
Jakub Sokołowski 30dc24a3a9
ci: move windows base image to docker image, add workdir
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-03-01 14:39:43 +01:00
Pedro Pombeiro 63b340ea33
Fix reproducible builds in Docker desktop images
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-29 11:19:01 +01:00
Jakub Sokołowski e87464e5ba
refactor docker image creation to use base image
Squashed commits:
- initial work
- make base image use all the versions
- make desktop images use the base image
- update ci to use new images
- use new toolversion script
- update android image tag
- add missing android-26 platform
- fix installing packages with sdkmanager
- fix installation of react-native-cli
- specify prefix path for npm install -g

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-25 11:40:32 +01:00
Pedro Pombeiro d3f1b37c12
Use new status-go and rename NotifyUsers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-24 15:41:32 +01:00
Pedro Pombeiro 3d332e009b
Add logic to cancel older running builds in Jenkins
https://www.pivotaltracker.com/story/show/163367849
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-21 21:25:57 +01:00
Jakub Sokołowski 7c8256234d
run genBuildNumber after make clean to not remove the file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-17 20:04:46 +01:00
Jakub Sokołowski b51b565cdb
add dockerimage for building android
- remove unused android-ndk toolchains
- add build.sh and test target for easy testing of image
- separate generic parts into a base image
- pass keystore credentials via env variables

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-16 17:36:13 +01:00
Jakub Sokołowski 243a2d1885
use nvm() wrapper in jenkins for android builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-16 14:07:53 +01:00
Jakub Sokołowski cc542969c0
move gh notification to post, add check for CHANGE_ID
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-09 12:33:40 +01:00
Jakub Sokołowski 0002218a6f
fix names of stages to fit what they do better
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-07 16:46:32 +01:00
Jakub Sokołowski ffdbedd049
use the new pr commenting service
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-14 18:33:48 +01:00
Jakub Sokołowski 9f7d32b1c5
add cleanup steps and reduce number of builds to keep
skip github notification if no CHANGE_ID is available

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-13 14:23:55 +01:00
Jakub Sokołowski 2586e71b30
move upload step top platform specific builds, cleanup
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-12 14:12:17 +01:00
Jakub Sokołowski 63ac18afde
set BUILD_TYPE to pr as default
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-11 12:15:45 +01:00
Jakub Sokołowski 7e031e8008
run buildNumber() at beggining of build, drop minutes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-28 16:10:53 +01:00
Jakub Sokołowski a016b1656d
increate android and combined timeout to 35 minutes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-14 13:43:22 +01:00
Jakub Sokołowski c3ad0a7b21
bump android timeout to 30 min
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-13 17:40:02 +01:00
Jakub Sokołowski 2890614a08
add timestamps to all commands
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-13 13:11:40 +01:00
Jakub Sokołowski 8199211e4d
add jenkins timeouts
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-10-30 13:31:19 +01:00
Jakub Sokołowski 75f23a19ad
drop use of artifactory maven repo
Signed-off-by: Jakub Sokołowski <jakub@status.im>

- rename jar file to match flatDir search method
- try using ivy repo to pull status-go from github
- drop use of artifactory in pom.xml
- move status-go version to a STATUS_GO_VERSION file
- upgrade status-go to 0.16.0
- unzip with overwriting
- prepare-ios: doewnload archive only if it doesn't exist
- fix prepare-android and prepare-ios
- use Makefile targets to make sure status-go archives exist
- remove unnecessary call to make prepare-android

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-10-05 18:18:58 -04:00
George Lipov e1c0dff406
Run CLJS unit tests when building desktop
Signed-off-by: George Lipov <gnl@lipov.net>
2018-09-26 18:38:47 +03:00
Eric Dvorsak 8eb5047d7a
[fix #4819] update react-native to 0.56
Fix figwheel-bridge path in clj-rn.conf.edn
update SplashScreen
update ios to 9.0
updated Podfile.lock
downgrade cocoapods to 1.5.2
update package-lock.json
update pod repo when installing
update appcompat to v27

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-05 21:27:46 +03:00
Jakub Sokołowski 3d6c2855be
run bundle install, specify bundle home for jenkins
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-31 22:54:50 -04:00
Jakub Sokołowski f82285b1f4
bump android build archive limits again to 60
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-31 10:24:30 -04:00
Jakub Sokołowski 789a905743
do't upload to saucelabs for nightlies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-31 07:56:55 -04:00
Jakub Sokołowski 5532510c56
run e2e by default only for nightlies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-29 13:46:31 -04:00
Jakub Sokołowski c11cf17009
bump limit for android ro 40 2018-08-29 11:12:32 -04:00
Jakub Sokołowski 60b343ef16
bump artifact limits to 30
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-29 08:56:14 -04:00
Igor Mandrigin aff20395f3
Jenkins: don't build unnecessary platforms for mobile builds.
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-29 14:45:55 +02:00
Igor Mandrigin e508d98316
Have a single notification about builds.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-29 14:22:22 +02:00
Jakub Sokołowski 76e9501541
prepare Jenkinsfile.combined for PR builds
- add missing Lint step for mobile builds
- add missing upload steps for android
- prefix fastlane calls with bundle exec
- update slackSend to format for PR builds
- silence fastlane notifying slack, Jenkins already does

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-27 19:34:00 -04:00
Jakub Sokołowski 17cca3a7c4
add metadata, change filenames, switch DO space to status-im
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-24 09:51:45 -04:00
Jakub Sokołowski 9ceb02e123
fix passing parameters
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-22 10:03:52 -04:00
Jakub Sokołowski 5fb33cc461
split groovy scripts more, use job parameters
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-22 08:13:04 -04:00
Jakub Sokołowski d38f74fdfd
create Jenkinsfile.combined and extract build teps
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-08-21 10:27:12 -04:00