Commit Graph
197 Commits
Author SHA1 Message Date
jakub 1b43e4c16b fix Android build on MacOS due to lack of OS var
changes:
- Drop use of /dev/stderr, doesn't work on MacOS
- Use uname -s instead of $OS which was removed
- Remove leading whitespace that fucks with Nix
- Check if `/etc/os-release` exists before reading it

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-14 18:31:52 +02:00
jakub f75cb14588 refactor and simplify mkFilter, use more restrictive rules
This should reduce rebuilds of status-react-npm-gradle-modules

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-31 17:03:39 +02:00
jakub eb5fe57e90 fix keystore generation, pass keystore vars to build
Changes:
* Drop --keep from nix/scripts/build.sh as it does nothing
* Allow scripts/release-android.sh take passwords from env
* Use env file in extra-sandbox-paths to pass keystore passwords
* Quote ever segment of Nix options to avoid parsing errors

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-16 12:11:00 +01:00
jakub 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 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 46bd2b2e4c cleanup of shell scripts
Changes:
- Add missing lazy assignment for OS_NAME, fixes double Nix shells
- Moved `scripts/add-nix-gcroots.sh` to `nix/scripts/gcroots.sh`
- Moved Nix package manager setup to `nix/scripts/setup.sh`
- Created `nix/scripts/source.sh` to reuse in all Nix scripts
- Created `STARTING_GUIDE.md` with instructions for contributors
- Created `scripts/colors.sh` for definition of shell colors
- Removed `scripts/setup` in favor of `nix/scripts/setup.sh`
- Removed all of `scripts/lib` since it was useless

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-24 19:31:55 +01:00
jakub f9c15be1d4 update-status-go: don't accept SHA1s, accept PR numbers
There was some confusion when given ref/tag did not exist.
Script would just use the value as commit SHA1 even if it was not one.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-05 14:57:35 +01:00
jakub 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
Pedro Pombeiro 2dce0ba861 Integrate status-go Nimbus build
Signed-off-by: Pedro Pombeiro <noreply@pedro.pombei.ro>
2020-01-21 08:48:04 +01:00
jakub b31bebdbd9 nix: Upgrade 2.3.1 > 2.3.2
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-17 18:21:39 +01:00
Pedro Pombeiro d62cda4d66 nix: Add support for reading .env feature flags 2020-01-14 15:16:30 +01:00
Pedro Pombeiro e220ecbb0a Cleanup
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2020-01-10 19:59:54 +01:00
jakub 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 f330392ccf narrow match with UID, print persistent matching processes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-30 14:47:06 +01:00
jakub 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
Pedro Pombeiro af7341447c nix: Remove need to pass default values in --arg config
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-11-17 16:26:58 +01:00
Pedro Pombeiro f7384ae338 Add support for STATUS_GO_SRC_OVERRIDE env var
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-11-13 16:41:21 +01:00
Pedro Pombeiro a71500b312 nix: fix passing of env vars to release-android expression 2019-11-13 12:01:48 +01:00
jakub 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 971db3ea2e include status-go params to set varsion and commit
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-04 21:12:30 +01: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
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 973623f4c8 build multiple APKs for different architectures
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-09-30 13:59:42 +02:00
Pedro Pombeiro 8ace86f7da Use sponge to avoid need for temp file
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-14 00:14:57 +02:00
Pedro Pombeiro 8c7323e126 Use flock to create exclusive locks on node_modules/
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-13 17:46:18 +02:00
Pedro Pombeiro 699ac8c56e Upgrade desktop yarn.lock
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-13 11:35:45 +02:00
Pedro Pombeiro e3e8e218ad Make root folder less busy
- Move `mobile_files` into `mobile/js_files`
- Move `desktop_files` into `desktop/js_files`

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-12 16:54:12 +02:00
Pedro Pombeiro 8209bf260c Rename package.json.orig to package.json
- This allows 3rd party tools like Dependabot to inspect our dependencies
2019-09-12 16:16:43 +02:00
Pedro Pombeiro 46e3b52809 Fix Android build on macOS 2019-09-12 16:13:42 +02:00
Pedro Pombeiro d6b8065a7c Get rid of duplicate sources of external modules and fonts in build-desktop.sh
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-09-11 15:25:21 +02:00
Pedro Pombeiro 58d310ffce Remove RAM bundle support 2019-08-30 17:13:35 +02:00
MajorTomSec 5dbac2b1d9 [Fix 8635] About showed "Version ()" instead of Version 0.14.0 (201908...) on Android
Fixes #8635 by adding VERSION and BUILD_NUMBER files in the correct nix
template and updating bash script in order to prevent it from failing,
due to the git repository being not initialized in the nix environment.

Move scripts/build_no.sh and scripts/gen_build_no.sh to
scripts/version/build_no.sh to prevent Nix from rebuilding when
unrelated scripts are touched.

Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-08-26 12:51:50 +03:00
jakub 06dd2e5293 use wait-for.sh to fix nix/clean.sh race condition
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-08-21 18:53:00 -04:00
Pedro Pombeiro ff721ba1bf nix: Some minor fixes 2019-08-15 11:18:31 +02:00
jakub 7517f5235a use nix shell for nix-update-* targets
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-30 14:11:02 -04: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 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
jakub 9d1bf5714d add --reset-cache to stop metro-cache from growing
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-24 09:39:17 -04:00
jakub b9ab37019d build status-go for Nix cache
Also fix scripts/update-status-go.sh to accept commit SHA1

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-23 01:01:41 -04:00
Pedro Pombeiro 67d21c98c1 nix: Use status-go commit sha1 in Nix expression to allow for moving branches
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-20 10:11:34 -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 977f1cd936 Remove RN patch 2019-07-05 13:40:31 +02:00
Pedro Pombeiro 8d8ef4d263 Only bring in Android dependencies in gomobile if targetting Android 2019-07-05 13:40:31 +02:00
Pedro Pombeiro c18e2f8a09 Minor fixes in Nix 2019-06-13 15:03:44 +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
Pedro Pombeiro ab11a67c96 Move files that don't change per platform to the root 2019-06-06 16:56:24 +02:00
Roman Volosovskyi c7c7b50281 RAM bundle basic setup 2019-05-27 17:34:17 +03:00
Pedro Pombeiro 373291bfc0 nix: Avoid bad practice of inheriting pkgs
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-21 12:15:56 +02:00