mirror of
https://github.com/status-im/status-react.git
synced 2025-01-10 19:16:59 +00:00
70 lines
1.5 KiB
Groovy
70 lines
1.5 KiB
Groovy
common = load 'ci/common.groovy'
|
|
ios = load 'ci/ios.groovy'
|
|
android = load 'ci/android.groovy'
|
|
|
|
def podLockExists() {
|
|
def lockFile = (
|
|
env.HOME+
|
|
'/.cocoapods/repos/master/.git/refs/remotes/origin/master.lock'
|
|
)
|
|
return fileExists(lockFile)
|
|
}
|
|
|
|
def podUpdate() {
|
|
/**
|
|
* This is awful BUT multiple jobs running on the same host can
|
|
* clash when trying to update the CocoaPods maste repo.
|
|
* We could set CP_REPOS_DIR, but the would result in
|
|
* multiple ~3GB directories all over the place and would be slow.
|
|
**/
|
|
def maxAttempts = 10
|
|
def success = false
|
|
for (i = 0; i <= maxAttempts; i++) {
|
|
if (!podLockExists()) {
|
|
success = true
|
|
break
|
|
}
|
|
sleep 10
|
|
}
|
|
if (!success) {
|
|
error('Another pod proc. is preventing us from updating!')
|
|
}
|
|
sh 'pod update --silent'
|
|
}
|
|
|
|
def prep(type = 'nightly') {
|
|
/* select type of build */
|
|
switch (type) {
|
|
case 'nightly':
|
|
sh 'cp .env.nightly .env'; break
|
|
case 'release':
|
|
sh 'cp .env.prod .env'; break
|
|
case 'e2e':
|
|
sh 'cp .env.e2e .env'; break
|
|
default:
|
|
sh 'cp .env.jenkins .env'; break
|
|
}
|
|
common.installJSDeps('mobile')
|
|
/* install Maven dependencies */
|
|
sh 'mvn -f modules/react-native-status/ios/RCTStatus dependency:unpack'
|
|
/* generate ios/StatusIm.xcworkspace */
|
|
dir('ios') {
|
|
podUpdate()
|
|
sh 'pod install --silent'
|
|
}
|
|
}
|
|
|
|
def runLint() {
|
|
sh 'lein cljfmt check'
|
|
}
|
|
|
|
def runTests() {
|
|
sh 'lein test-cljs'
|
|
}
|
|
|
|
def leinBuild(platform) {
|
|
sh "lein prod-build-${platform}"
|
|
}
|
|
|
|
return this
|