Commit Graph

156 Commits

Author SHA1 Message Date
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 b402dc9c62
upgrade XCode to 11.3.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-14 17:23:19 +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 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
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
yenda c3dd950286
remove realm
Signed-off-by: yenda <eric@status.im>
2019-09-09 18:40:15 +02: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
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 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 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 5440378bbc
Migrate remaining CI builds to Nix 2019-03-21 13:57:01 +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 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 47f7dbac9d
upload ipa files to DO and Diawi on release too
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-07 12:00:08 +01:00
Jakub Sokołowski f67ee8db56
upload release.json for release builds
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-06 14:52:26 +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
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02: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 75d992099f
skip uploading on release since bundle stage already does that
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-01-10 14:52:43 +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 51b388cce3
always upload iOS builds to Diawi
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-07 16:15:47 +01:00
Jakub Sokołowski a91a799eb5
add an e2e build target for ios
Squashe commits:
- add an e2e build target for ios
- add correct sdk and destination for simulator
- fixup! add correct sdk and destination for simulator
- drop xcarchive_path since we are not using it
- temporarily bind ios build to macos-03
- Detect installed simulator SDK and use it.
- Signed-off-by: Jakub Sokołowski <jakub@status.im>

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-05 18:43:11 +01:00
yenda 891447b8b3
update realm to 2.20.1 and node to 10.14.0
- add node version 10.14.1 via nvm wrapper for CI

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: yenda <eric@status.im>
2018-11-30 15:46:58 +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 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 60f1e485d6
bump ios timeout to 35 min because prep stage can take long
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-13 12:46:20 +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
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 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