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>
This commit is contained in:
parent
b575f5f6a5
commit
9d1e266145
6
Gemfile
6
Gemfile
|
@ -1,6 +0,0 @@
|
||||||
source "https://rubygems.org"
|
|
||||||
|
|
||||||
gem "fastlane"
|
|
||||||
|
|
||||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
|
||||||
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
|
|
@ -31,8 +31,6 @@ pipeline {
|
||||||
CI_ENVIRONMENT = 'jenkins'
|
CI_ENVIRONMENT = 'jenkins'
|
||||||
/* since we are mounting it we need to specify location */
|
/* since we are mounting it we need to specify location */
|
||||||
STATUS_RELEASE_STORE_FILE = '/home/jenkins/status-im.keystore'
|
STATUS_RELEASE_STORE_FILE = '/home/jenkins/status-im.keystore'
|
||||||
/* bundle cache is sensitive to being used by different ruby versions */
|
|
||||||
BUNDLE_PATH = "/var/tmp/bundle-${EXECUTOR_NUMBER}"
|
|
||||||
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
|
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
|
||||||
LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}"
|
LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}"
|
||||||
YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}"
|
YARN_CACHE_FOLDER = "/var/tmp/yarn-${EXECUTOR_NUMBER}"
|
||||||
|
|
|
@ -19,7 +19,7 @@ pipeline {
|
||||||
stages {
|
stages {
|
||||||
stage('Install Deps'){
|
stage('Install Deps'){
|
||||||
steps {
|
steps {
|
||||||
sh ('bundle install')
|
sh ('bundle install --gemfile=fastlane/Gemfile')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ pipeline {
|
||||||
passwordVariable: 'FASTLANE_PASSWORD'
|
passwordVariable: 'FASTLANE_PASSWORD'
|
||||||
),
|
),
|
||||||
]) {
|
]) {
|
||||||
sh ('bundle exec fastlane ios clean')
|
sh ('bundle exec --gemfile=fastlane/Gemfile fastlane ios clean')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ def uploadToPlayStore(type = 'nightly') {
|
||||||
withCredentials([
|
withCredentials([
|
||||||
string(credentialsId: "SUPPLY_JSON_KEY_DATA", variable: 'GOOGLE_PLAY_JSON_KEY'),
|
string(credentialsId: "SUPPLY_JSON_KEY_DATA", variable: 'GOOGLE_PLAY_JSON_KEY'),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh "bundle exec fastlane android ${type}"
|
utils.nix_fastlane_sh "android ${type}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ def uploadToSauceLabs() {
|
||||||
string(credentialsId: 'SAUCE_ACCESS_KEY', variable: 'SAUCE_ACCESS_KEY'),
|
string(credentialsId: 'SAUCE_ACCESS_KEY', variable: 'SAUCE_ACCESS_KEY'),
|
||||||
string(credentialsId: 'SAUCE_USERNAME', variable: 'SAUCE_USERNAME'),
|
string(credentialsId: 'SAUCE_USERNAME', variable: 'SAUCE_USERNAME'),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh 'bundle exec fastlane android saucelabs'
|
utils.nix_fastlane_sh 'android saucelabs'
|
||||||
}
|
}
|
||||||
return env.SAUCE_LABS_NAME
|
return env.SAUCE_LABS_NAME
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ def uploadToDiawi() {
|
||||||
withCredentials([
|
withCredentials([
|
||||||
string(credentialsId: 'diawi-token', variable: 'DIAWI_TOKEN'),
|
string(credentialsId: 'diawi-token', variable: 'DIAWI_TOKEN'),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh 'bundle exec fastlane android upload_diawi'
|
utils.nix_fastlane_sh 'android upload_diawi'
|
||||||
}
|
}
|
||||||
diawiUrl = readFile "${env.WORKSPACE}/fastlane/diawi.out"
|
diawiUrl = readFile "${env.WORKSPACE}/fastlane/diawi.out"
|
||||||
return diawiUrl
|
return diawiUrl
|
||||||
|
|
|
@ -65,8 +65,11 @@ def prep(type = 'nightly') {
|
||||||
if (env.TARGET_OS == 'android' || env.TARGET_OS == 'ios') {
|
if (env.TARGET_OS == 'android' || env.TARGET_OS == 'ios') {
|
||||||
/* Run at start to void mismatched numbers */
|
/* Run at start to void mismatched numbers */
|
||||||
utils.genBuildNumber()
|
utils.genBuildNumber()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (env.TARGET_OS == 'ios') {
|
||||||
/* install ruby dependencies */
|
/* install ruby dependencies */
|
||||||
utils.nix_sh 'bundle install --quiet'
|
utils.nix_sh 'bundle install --gemfile=fastlane/Gemfile --quiet'
|
||||||
}
|
}
|
||||||
|
|
||||||
def prepareTarget=env.TARGET_OS
|
def prepareTarget=env.TARGET_OS
|
||||||
|
|
|
@ -33,7 +33,7 @@ def bundle() {
|
||||||
passwordVariable: 'FASTLANE_PASSWORD'
|
passwordVariable: 'FASTLANE_PASSWORD'
|
||||||
),
|
),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh "bundle exec fastlane ios ${target}"
|
utils.nix_sh "bundle exec --gemfile=fastlane/Gemfile fastlane ios ${target}"
|
||||||
}
|
}
|
||||||
/* rename built file for uploads and archivization */
|
/* rename built file for uploads and archivization */
|
||||||
def pkg = ''
|
def pkg = ''
|
||||||
|
@ -56,7 +56,7 @@ def uploadToDiawi() {
|
||||||
withCredentials([
|
withCredentials([
|
||||||
string(credentialsId: 'diawi-token', variable: 'DIAWI_TOKEN'),
|
string(credentialsId: 'diawi-token', variable: 'DIAWI_TOKEN'),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh 'bundle exec fastlane ios upload_diawi'
|
utils.nix_sh 'bundle exec --gemfile=fastlane/Gemfile fastlane ios upload_diawi'
|
||||||
}
|
}
|
||||||
diawiUrl = readFile "${env.WORKSPACE}/fastlane/diawi.out"
|
diawiUrl = readFile "${env.WORKSPACE}/fastlane/diawi.out"
|
||||||
return diawiUrl
|
return diawiUrl
|
||||||
|
@ -73,7 +73,7 @@ def uploadToSauceLabs() {
|
||||||
string(credentialsId: 'SAUCE_ACCESS_KEY', variable: 'SAUCE_ACCESS_KEY'),
|
string(credentialsId: 'SAUCE_ACCESS_KEY', variable: 'SAUCE_ACCESS_KEY'),
|
||||||
string(credentialsId: 'SAUCE_USERNAME', variable: 'SAUCE_USERNAME'),
|
string(credentialsId: 'SAUCE_USERNAME', variable: 'SAUCE_USERNAME'),
|
||||||
]) {
|
]) {
|
||||||
utils.nix_sh 'bundle exec fastlane ios saucelabs'
|
utils.nix_sh 'bundle exec --gemfile=fastlane/Gemfile fastlane ios saucelabs'
|
||||||
}
|
}
|
||||||
return env.SAUCE_LABS_NAME
|
return env.SAUCE_LABS_NAME
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ def getToolVersion(name) {
|
||||||
|
|
||||||
def nix_sh(cmd) {
|
def nix_sh(cmd) {
|
||||||
def isPure = env.TARGET_OS == 'linux' || env.TARGET_OS == 'android'
|
def isPure = env.TARGET_OS == 'linux' || env.TARGET_OS == 'android'
|
||||||
def pureFlag = isPure ? '--pure' : ''
|
def pureFlag = isPure ? '--pure --keep LOCALE_ARCHIVE_2_27 --keep REALM_DISABLE_ANALYTICS --keep STATUS_RELEASE_STORE_FILE --keep STATUS_RELEASE_STORE_PASSWORD --keep STATUS_RELEASE_KEY_ALIAS --keep STATUS_RELEASE_KEY_PASSWORD --keep VERBOSE_LEVEL' : ''
|
||||||
|
|
||||||
sh """
|
sh """
|
||||||
set +x
|
set +x
|
||||||
|
@ -29,6 +29,20 @@ def nix_sh(cmd) {
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def nix_fastlane_sh(cmd) {
|
||||||
|
def isPure = env.TARGET_OS == 'android'
|
||||||
|
def pureFlag = isPure ? '--pure --keep LANG --keep LANGUAGE --keep LC_ALL --keep DIAWI_TOKEN --keep DIAWI_IPA --keep APK_PATH --keep GOOGLE_PLAY_JSON_KEY --keep SAUCE_LABS_NAME --keep SAUCE_USERNAME --keep SAUCE_ACCESS_KEY --keep FASTLANE_DISABLE_COLORS --keep FASTLANE_APPLE_ID --keep FASTLANE_PASSWORD --keep KEYCHAIN_PASSWORD --keep MATCH_PASSWORD --keep REALM_DISABLE_ANALYTICS --keep STATUS_RELEASE_STORE_FILE --keep GRADLE_USER_HOME' : ''
|
||||||
|
|
||||||
|
sh """
|
||||||
|
set +x
|
||||||
|
. ~/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
set -x
|
||||||
|
nix-shell --argstr target-os \'${env.TARGET_OS}\' \\
|
||||||
|
${pureFlag} --run \'printenv && \$FASTLANE_SCRIPT ${cmd}\' \\
|
||||||
|
\'${env.WORKSPACE}/shell.nix\'
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
|
||||||
def branchName() {
|
def branchName() {
|
||||||
return env.GIT_BRANCH.replaceAll(/.*origin\//, '')
|
return env.GIT_BRANCH.replaceAll(/.*origin\//, '')
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "fastlane"
|
||||||
|
|
||||||
|
plugins_path = File.join(File.dirname(__FILE__), 'Pluginfile')
|
||||||
|
eval_gemfile(plugins_path) if File.exist?(plugins_path)
|
||||||
|
|
||||||
|
plugins_path = ENV["FASTLANE_PLUGINFILE_PATH"]
|
||||||
|
eval_gemfile(plugins_path) if plugins_path
|
|
@ -109,7 +109,7 @@ GEM
|
||||||
nanaimo (0.2.6)
|
nanaimo (0.2.6)
|
||||||
naturally (2.2.0)
|
naturally (2.2.0)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
os (1.0.0)
|
os (1.0.1)
|
||||||
plist (3.5.0)
|
plist (3.5.0)
|
||||||
public_suffix (2.0.5)
|
public_suffix (2.0.5)
|
||||||
representable (3.0.4)
|
representable (3.0.4)
|
|
@ -0,0 +1,63 @@
|
||||||
|
{ stdenv, bundlerEnv, ruby, makeWrapper }:
|
||||||
|
|
||||||
|
let
|
||||||
|
fastlane = stdenv.mkDerivation rec {
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
pname = "fastlane";
|
||||||
|
version = (import ./gemset.nix).fastlane.version;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
env = bundlerEnv {
|
||||||
|
name = "${name}-gems";
|
||||||
|
inherit pname ruby;
|
||||||
|
gemdir = ./.;
|
||||||
|
};
|
||||||
|
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
makeWrapper ${env}/bin/fastlane $out/bin/fastlane \
|
||||||
|
--set FASTLANE_SKIP_UPDATE_CHECK 1
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A tool to automate building and releasing iOS and Android apps";
|
||||||
|
longDescription = "fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.";
|
||||||
|
homepage = https://github.com/fastlane/fastlane;
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [
|
||||||
|
peterromfeldhk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in {
|
||||||
|
package = fastlane;
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export FASTLANE_PLUGINFILE_PATH=$PWD/fastlane/Pluginfile
|
||||||
|
export FASTLANE_SCRIPT="${fastlane}/bin/fastlane" # the ruby package also exposes the fastlane Gem, so we want to make sure we don't rely on PATH ordering to get the right package
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
|
## This nix file cannot currently be used for iOS due to an error in BUILD TARGET ReactNativeConfig OF PROJECT ReactNativeConfig WITH CONFIGURATION Release
|
||||||
|
## The log shows:
|
||||||
|
## PhaseScriptExecution Run\ Script /Users/jenkins/Library/Developer/Xcode/DerivedData/StatusIm-gzbepwnrlqbukxbmmpfskimspfch/Build/Intermediates.noindex/ArchiveIntermediates/StatusIm/IntermediateBuildFilesPath/ReactNativeConfig.build/Release-iphoneos/ReactNativeConfig.build/Script-EBE4E8281C7BF689000F8875.sh
|
||||||
|
## /bin/sh -c /Users/jenkins/Library/Developer/Xcode/DerivedData/StatusIm-gzbepwnrlqbukxbmmpfskimspfch/Build/Intermediates.noindex/ArchiveIntermediates/StatusIm/IntermediateBuildFilesPath/ReactNativeConfig.build/Release-iphoneos/ReactNativeConfig.build/Script-EBE4E8281C7BF689000F8875.sh
|
||||||
|
## which calls node_modules/react-native-config/ios/ReactNativeConfig/BuildDotenvConfig.ruby. The log further shows:
|
||||||
|
## Ignoring json-2.2.0 because its extensions are not built. Try: gem pristine json --version 2.2.0
|
||||||
|
## Ignoring unf_ext-0.0.7.6 because its extensions are not built. Try: gem pristine unf_ext --version 0.0.7.6
|
||||||
|
## /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/spec_set.rb:91:in `block in materialize': Could not find unf_ext-0.0.7.6 in any of the sources (Bundler::GemNotFound)
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/spec_set.rb:85:in `map!'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/spec_set.rb:85:in `materialize'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/definition.rb:170:in `specs'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/definition.rb:237:in `specs_for'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/definition.rb:226:in `requested_specs'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/runtime.rb:108:in `block in definition_method'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/runtime.rb:20:in `setup'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler.rb:107:in `setup'
|
||||||
|
## from /nix/store/w7rysr83rd8jga24mp3a2m3vx50n4nva-bundler-1.17.2/lib/ruby/gems/2.5.0/gems/bundler-1.17.2/lib/bundler/setup.rb:20:in `<top (required)>'
|
||||||
|
## from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
|
||||||
|
## from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
|
|
@ -0,0 +1,707 @@
|
||||||
|
{
|
||||||
|
addressable = {
|
||||||
|
dependencies = ["public_suffix"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.6.0";
|
||||||
|
};
|
||||||
|
atomos = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.1.3";
|
||||||
|
};
|
||||||
|
babosa = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.2";
|
||||||
|
};
|
||||||
|
CFPropertyList = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0ykjag3k5msz3sf1j91rb55da2xh596y06m3a4yl79fiy2id0w9z";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.0.0";
|
||||||
|
};
|
||||||
|
claide = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0az54rp691hc42yl1xyix2cxv58byhaaf4gxbpghvvq29l476rzc";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.2";
|
||||||
|
};
|
||||||
|
colored = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.2";
|
||||||
|
};
|
||||||
|
colored2 = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.1.2";
|
||||||
|
};
|
||||||
|
commander-fastlane = {
|
||||||
|
dependencies = ["highline"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0y8d3ac9qwm1cg6rnpf8rcdsy1yxacrd2g2kl809xsp2vi973g65";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "4.4.6";
|
||||||
|
};
|
||||||
|
declarative = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.0.10";
|
||||||
|
};
|
||||||
|
declarative-option = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.1.0";
|
||||||
|
};
|
||||||
|
digest-crc = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "08q8p0fk51aa6dwhy2xmjaj76arcq9nn22gyia162jmqpccfx50l";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.4.1";
|
||||||
|
};
|
||||||
|
domain_name = {
|
||||||
|
dependencies = ["unf"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.5.20180417";
|
||||||
|
};
|
||||||
|
dotenv = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "13cis6bf06hmz744xrsl163p6gb78xcm8g8q4pcabsy5ywyv6kag";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.7.2";
|
||||||
|
};
|
||||||
|
emoji_regex = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1jfsv8ik2h1msqf3if1f121pnx3lccp8fqnka9na309mnw3bq532";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.1";
|
||||||
|
};
|
||||||
|
excon = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0vcplvlykirg2vc56jjxavgpkllzq26xgp7ind7wc5ikaqaz64gn";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.64.0";
|
||||||
|
};
|
||||||
|
faraday = {
|
||||||
|
dependencies = ["multipart-post"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.15.4";
|
||||||
|
};
|
||||||
|
faraday-cookie_jar = {
|
||||||
|
dependencies = ["faraday" "http-cookie"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.0.6";
|
||||||
|
};
|
||||||
|
faraday_middleware = {
|
||||||
|
dependencies = ["faraday"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1a93rs58bakqck7bcihasz66a1riy22h2zpwrpmb13gp8mw3wkmr";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.13.1";
|
||||||
|
};
|
||||||
|
fastimage = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1iy9jm13r2r4yz41xaivhxs8mvqn57fjwihxvazbip002mq6rxfz";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.1.5";
|
||||||
|
};
|
||||||
|
fastlane = {
|
||||||
|
dependencies = ["CFPropertyList" "addressable" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "mini_magick" "multi_json" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "03lzpws5xy5alla96sf4h7qapklylpaq8qzln8r1p11qbpgnrrlc";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.121.1";
|
||||||
|
};
|
||||||
|
fastlane-plugin-clean_testflight_testers = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0r9qh2p1rpry68dddf380k25qg0f1xn1bamdr9255v6kaxd8vq42";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.2.0";
|
||||||
|
};
|
||||||
|
fastlane-plugin-diawi = {
|
||||||
|
dependencies = ["rest-client"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "01zaq5ykpn8j04pfyd4p3p0dnlil3cbbzcw5hayc70dpak09cr6x";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.3.0";
|
||||||
|
};
|
||||||
|
gh_inspector = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.1.3";
|
||||||
|
};
|
||||||
|
google-api-client = {
|
||||||
|
dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable" "signet"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1z925kbqyaxdi6ld3gvaqc9527xfi8k3rr6snq5mvx5kibdi072a";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.23.9";
|
||||||
|
};
|
||||||
|
google-cloud-core = {
|
||||||
|
dependencies = ["google-cloud-env"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0gqn523gqj6dwbj9ddcb8rjw0sai4x138pk3l3qzmq8jxz67qqj5";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.3.0";
|
||||||
|
};
|
||||||
|
google-cloud-env = {
|
||||||
|
dependencies = ["faraday"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "038jcy9nm1liah5ywaxm5xx2adbd28y6p8fk2frgv63v80pj8mw4";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.5";
|
||||||
|
};
|
||||||
|
google-cloud-storage = {
|
||||||
|
dependencies = ["digest-crc" "google-api-client" "google-cloud-core" "googleauth"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0lslrlrrhjj8imbpzvbbwflrvq06r0x5h74mlq726yvkr7akyqlq";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.16.0";
|
||||||
|
};
|
||||||
|
googleauth = {
|
||||||
|
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1yj7j1rnyamxpn5ybgdgbiw89v9bq2r0h85s2y2jzvqanvm7iflq";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.6.7";
|
||||||
|
};
|
||||||
|
highline = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.7.10";
|
||||||
|
};
|
||||||
|
http-cookie = {
|
||||||
|
dependencies = ["domain_name"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.3";
|
||||||
|
};
|
||||||
|
httpclient = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.8.3";
|
||||||
|
};
|
||||||
|
json = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.2.0";
|
||||||
|
};
|
||||||
|
jwt = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.1.0";
|
||||||
|
};
|
||||||
|
memoist = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.16.0";
|
||||||
|
};
|
||||||
|
mime-types = {
|
||||||
|
dependencies = ["mime-types-data"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.2.2";
|
||||||
|
};
|
||||||
|
mime-types-data = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.2019.0331";
|
||||||
|
};
|
||||||
|
mini_magick = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1a59k5l29vj060yscaqk370rg5vyr132kbw6x3zar7khzjqjqd8p";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "4.5.1";
|
||||||
|
};
|
||||||
|
multi_json = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.13.1";
|
||||||
|
};
|
||||||
|
multi_xml = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.6.0";
|
||||||
|
};
|
||||||
|
multipart-post = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.0.0";
|
||||||
|
};
|
||||||
|
nanaimo = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.2.6";
|
||||||
|
};
|
||||||
|
naturally = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0dzqdawqr4agx7zr1fr5zxdwl8vb5rhpz57l1lk7d2y46ha6l4l7";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.2.0";
|
||||||
|
};
|
||||||
|
netrc = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.11.0";
|
||||||
|
};
|
||||||
|
os = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "06r55k01g32lvz4wf2s6hpjlxbbag113jsvff3w64jllfr315a73";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.1";
|
||||||
|
};
|
||||||
|
plist = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.5.0";
|
||||||
|
};
|
||||||
|
public_suffix = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.0.5";
|
||||||
|
};
|
||||||
|
representable = {
|
||||||
|
dependencies = ["declarative" "declarative-option" "uber"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.0.4";
|
||||||
|
};
|
||||||
|
rest-client = {
|
||||||
|
dependencies = ["http-cookie" "mime-types" "netrc"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.0.2";
|
||||||
|
};
|
||||||
|
retriable = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "3.1.2";
|
||||||
|
};
|
||||||
|
rouge = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0sfikq1q8xyqqx690iiz7ybhzx87am4w50w8f2nq36l3asw4x89d";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.0.7";
|
||||||
|
};
|
||||||
|
rubyzip = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.2.2";
|
||||||
|
};
|
||||||
|
security = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1ryjxs0j66wrbky2c08yf0mllwalvpg12rpxzbdx2rdhj3cbrlxa";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.1.3";
|
||||||
|
};
|
||||||
|
signet = {
|
||||||
|
dependencies = ["addressable" "faraday" "jwt" "multi_json"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.11.0";
|
||||||
|
};
|
||||||
|
simctl = {
|
||||||
|
dependencies = ["CFPropertyList" "naturally"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0bbvbpdk955q1g797md960fdznw6p6hmj2pc62yrbpvb1ymag1sf";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.6.5";
|
||||||
|
};
|
||||||
|
slack-notifier = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.3.2";
|
||||||
|
};
|
||||||
|
terminal-notifier = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1slc0y8pjpw30hy21v8ypafi8r7z9jlj4bjbgz03b65b28i2n3bs";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "2.0.0";
|
||||||
|
};
|
||||||
|
terminal-table = {
|
||||||
|
dependencies = ["unicode-display_width"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.8.0";
|
||||||
|
};
|
||||||
|
tty-cursor = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0n9mcb1jdyhz11fg0s7wy3q57xkh77p1r60w7rjibjfpkyx9v8q3";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.6.1";
|
||||||
|
};
|
||||||
|
tty-screen = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.6.5";
|
||||||
|
};
|
||||||
|
tty-spinner = {
|
||||||
|
dependencies = ["tty-cursor"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0248h3x77634b41w5xv6k10p7767li5b6pc90h23635xv7kdkdyd";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.9.0";
|
||||||
|
};
|
||||||
|
uber = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.1.0";
|
||||||
|
};
|
||||||
|
unf = {
|
||||||
|
dependencies = ["unf_ext"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.1.4";
|
||||||
|
};
|
||||||
|
unf_ext = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.0.7.6";
|
||||||
|
};
|
||||||
|
unicode-display_width = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1ssnc6rja9ii97z7m35y4zd0rd7cpv3bija20l7cpd7y4jyyx44q";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.5.0";
|
||||||
|
};
|
||||||
|
word_wrap = {
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1iyc5bc7dbgsd8j3yk1i99ral39f23l6wapi0083fbl19hid8mpm";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.0";
|
||||||
|
};
|
||||||
|
xcodeproj = {
|
||||||
|
dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "0ji3wmpr6xm4172vxh9y6731vm2xrvv7ccwk4ijd5n4if1dakm03";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.8.2";
|
||||||
|
};
|
||||||
|
xcpretty = {
|
||||||
|
dependencies = ["rouge"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "1xq47q2h5llj7b54rws4796904vnnjz7qqnacdv7wlp3gdbwrivm";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "0.3.0";
|
||||||
|
};
|
||||||
|
xcpretty-travis-formatter = {
|
||||||
|
dependencies = ["xcpretty"];
|
||||||
|
groups = ["default"];
|
||||||
|
platforms = [];
|
||||||
|
source = {
|
||||||
|
remotes = ["https://rubygems.org"];
|
||||||
|
sha256 = "15b5c0lxz2blmichfdlabzlbyw5nlh1ci898pxwb661m9bahz3ml";
|
||||||
|
type = "gem";
|
||||||
|
};
|
||||||
|
version = "1.0.0";
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p bash ruby bundler bundix
|
||||||
|
|
||||||
|
rm -f Gemfile.lock
|
||||||
|
bundler install --path .bundle/vendor
|
||||||
|
bundix
|
||||||
|
rm -rf .bundle/vendor
|
||||||
|
|
||||||
|
if [ "clean" == "$1" ]; then
|
||||||
|
rm -r ~/.gem
|
||||||
|
fi
|
|
@ -40,6 +40,6 @@ in
|
||||||
export ANDROID_NDK="$ANDROID_NDK_ROOT"
|
export ANDROID_NDK="$ANDROID_NDK_ROOT"
|
||||||
export PATH="$ANDROID_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools:$PATH"
|
export PATH="$ANDROID_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools:$PATH"
|
||||||
|
|
||||||
$(git rev-parse --show-toplevel)/scripts/generate-keystore.sh
|
$STATUS_REACT_HOME/scripts/generate-keystore.sh
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ let
|
||||||
xcodewrapperArgs = {
|
xcodewrapperArgs = {
|
||||||
version = "10.1";
|
version = "10.1";
|
||||||
};
|
};
|
||||||
|
xcodeWrapper = xcodeenv.composeXcodeWrapper xcodewrapperArgs;
|
||||||
android = callPackage ./android.nix { inherit config; };
|
android = callPackage ./android.nix { inherit config; };
|
||||||
|
|
||||||
in
|
in
|
||||||
|
@ -24,7 +25,8 @@ in
|
||||||
inherit xcodewrapperArgs;
|
inherit xcodewrapperArgs;
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
lib.optional targetAndroid android.buildInputs;
|
lib.optional targetAndroid android.buildInputs ++
|
||||||
|
lib.optional (targetIOS && isDarwin) xcodeWrapper;
|
||||||
shellHook =
|
shellHook =
|
||||||
lib.optionalString targetIOS ''
|
lib.optionalString targetIOS ''
|
||||||
export RCTSTATUS_FILEPATH=${status-go}/lib/ios/Statusgo.framework
|
export RCTSTATUS_FILEPATH=${status-go}/lib/ios/Statusgo.framework
|
||||||
|
|
20
shell.nix
20
shell.nix
|
@ -4,14 +4,25 @@ with pkgs;
|
||||||
|
|
||||||
let
|
let
|
||||||
projectDeps = import ./default.nix { inherit target-os; };
|
projectDeps = import ./default.nix { inherit target-os; };
|
||||||
|
targetAndroid = {
|
||||||
|
"android" = true;
|
||||||
|
"all" = true;
|
||||||
|
}.${target-os} or false;
|
||||||
targetMobile = {
|
targetMobile = {
|
||||||
"android" = true;
|
"android" = true;
|
||||||
"ios" = true;
|
"ios" = true;
|
||||||
"all" = true;
|
"all" = true;
|
||||||
}.${target-os} or false;
|
}.${target-os} or false;
|
||||||
|
useFastlanePkg = (targetAndroid && !_stdenv.isDarwin);
|
||||||
# TODO: Try to use stdenv for iOS. The problem is with building iOS as the build is trying to pass parameters to Apple's ld that are meant for GNU's ld (e.g. -dynamiclib)
|
# TODO: Try to use stdenv for iOS. The problem is with building iOS as the build is trying to pass parameters to Apple's ld that are meant for GNU's ld (e.g. -dynamiclib)
|
||||||
_stdenv = stdenvNoCC;
|
_stdenv = stdenvNoCC;
|
||||||
_mkShell = mkShell.override { stdenv = _stdenv; };
|
_mkShell = mkShell.override { stdenv = _stdenv; };
|
||||||
|
_fastlane = callPackage ./fastlane {
|
||||||
|
bundlerEnv = _: pkgs.bundlerEnv {
|
||||||
|
name = "fastlane-gems";
|
||||||
|
gemdir = ./fastlane;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
in _mkShell {
|
in _mkShell {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -27,16 +38,19 @@ in _mkShell {
|
||||||
ps # used in scripts/start-react-native.sh
|
ps # used in scripts/start-react-native.sh
|
||||||
unzip
|
unzip
|
||||||
wget
|
wget
|
||||||
] ++ lib.optionals targetMobile [ bundler ruby ]; # bundler/ruby used for fastlane
|
] ++
|
||||||
|
(if useFastlanePkg then [ _fastlane.package ] else [ bundler ruby ]); # bundler/ruby used for fastlane on macOS
|
||||||
inputsFrom = [ projectDeps ];
|
inputsFrom = [ projectDeps ];
|
||||||
TARGET_OS=target-os;
|
TARGET_OS=target-os;
|
||||||
shellHook =
|
shellHook =
|
||||||
''
|
''
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
${projectDeps.shellHook}
|
|
||||||
|
|
||||||
STATUS_REACT_HOME=$(git rev-parse --show-toplevel)
|
STATUS_REACT_HOME=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
|
${projectDeps.shellHook}
|
||||||
|
${lib.optionalString useFastlanePkg _fastlane.shellHook}
|
||||||
|
|
||||||
if [ ! -f $STATUS_REACT_HOME/.ran-setup ]; then
|
if [ ! -f $STATUS_REACT_HOME/.ran-setup ]; then
|
||||||
$STATUS_REACT_HOME/scripts/setup
|
$STATUS_REACT_HOME/scripts/setup
|
||||||
touch $STATUS_REACT_HOME/.ran-setup
|
touch $STATUS_REACT_HOME/.ran-setup
|
||||||
|
|
Loading…
Reference in New Issue