mirror of
https://github.com/status-im/status-react.git
synced 2025-01-26 02:40:51 +00:00
Jakub Sokołowski
8cd5e3f6e3
This way people don't have to ask me for access to logs from CI hosts to be acquired using SSH access, but instead they will be simply included in Jenkins build artifacts. Signed-off-by: Jakub Sokołowski <jakub@status.im>
94 lines
2.1 KiB
Plaintext
94 lines
2.1 KiB
Plaintext
library 'status-jenkins-lib@v1.6.6'
|
|
|
|
/* Options section can't access functions in objects. */
|
|
def isPRBuild = utils.isPRBuild()
|
|
|
|
pipeline {
|
|
agent { label 'macos && arm64 && nix-2.11 && xcode-14.2' }
|
|
|
|
parameters {
|
|
string(
|
|
name: 'BUILD_TYPE',
|
|
description: 'Specify build type. Values: pr / e2e / nightly / release',
|
|
defaultValue: 'pr',
|
|
)
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
/* Prevent Jenkins jobs from running forever */
|
|
timeout(time: 25, unit: 'MINUTES')
|
|
/* Limit builds retained */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '10',
|
|
daysToKeepStr: '20',
|
|
artifactNumToKeepStr: '10',
|
|
))
|
|
/* Allows combined build to copy */
|
|
copyArtifactPermission('/status-mobile/*')
|
|
/* Abort old PR builds. */
|
|
disableConcurrentBuilds(
|
|
abortPrevious: isPRBuild
|
|
)
|
|
}
|
|
|
|
environment {
|
|
LANG = "en_US.UTF-8"
|
|
LC_ALL = "en_US.UTF-8"
|
|
LANGUAGE = "en_US.UTF-8"
|
|
TARGET = 'ios'
|
|
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
|
/* See nix/README.md */
|
|
NIX_IGNORE_SYMLINK_STORE = 1
|
|
FASTLANE_DISABLE_COLORS = 1
|
|
BUNDLE_PATH = "${HOME}/.bundle"
|
|
}
|
|
|
|
stages {
|
|
stage('Prep') {
|
|
steps {
|
|
script {
|
|
utils.doGitRebasePR()
|
|
utils.symlinkEnv()
|
|
println("Build Number: ${utils.genBuildNumber()}")
|
|
}
|
|
}
|
|
}
|
|
stage('JSBundle') {
|
|
steps {
|
|
script { ios.jsbundle() }
|
|
}
|
|
}
|
|
stage('Bundle') {
|
|
steps {
|
|
script { api = ios.bundle() }
|
|
}
|
|
post {
|
|
failure { archiveArtifacts 'ios/logs/*' }
|
|
}
|
|
}
|
|
stage('Parallel Upload') {
|
|
parallel {
|
|
stage('Archive') {
|
|
steps {
|
|
archiveArtifacts api
|
|
}
|
|
}
|
|
stage('Upload') {
|
|
when { expression { !utils.isReleaseBuild() } }
|
|
steps { script {
|
|
env.DIAWI_URL = ios.uploadToDiawi()
|
|
env.PKG_URL = env.DIAWI_URL
|
|
jenkins.setBuildDesc(IPA: env.PKG_URL)
|
|
} }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success { script { github.notifyPR(true) } }
|
|
failure { script { github.notifyPR(false) } }
|
|
always { sh 'make purge' }
|
|
}
|
|
}
|