mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-10 06:16:32 +00:00
10d82124fe
Allow environmental override at runtime. Also, in the Makefile set a free-tier default token so that setting up an Infura account isn't strictly necessary for community contributors to build the app, even though in our docs it should be recommended they do so. Core contributors should setup their own free-tier Infura account, create a key, and set it in the environment variable INFURA_TOKEN in their environment used to build the desktop app locally. There is one aspect of this work that is incomplete. Ideally, in the handler for the `login` event the relevant settings in the database should always be updated with the resolved Infura key. However, when calling `getSetting[string](Setting.Networks_Networks)` in the handler it causes a segfault every time. Neither the reason for the crash nor a workaround have been worked out at this time.
97 lines
2.2 KiB
Plaintext
97 lines
2.2 KiB
Plaintext
library 'status-react-jenkins@v1.2.4'
|
|
|
|
pipeline {
|
|
agent {
|
|
label 'macos'
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
/* Prevent Jenkins jobs from running forever */
|
|
timeout(time: 15, unit: 'MINUTES')
|
|
/* manage how many builds we keep */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '10',
|
|
daysToKeepStr: '30',
|
|
))
|
|
}
|
|
|
|
environment {
|
|
TARGET = 'macos'
|
|
/* Improve make performance */
|
|
MAKEFLAGS = '-j4'
|
|
/* Disable colors in Nim compiler logs */
|
|
NIMFLAGS = '--colors:off'
|
|
/* Qt location is pre-defined */
|
|
QTDIR = '/usr/local/qt/clang_64'
|
|
PATH = "${env.QTDIR}/bin:${env.PATH}"
|
|
/* Control output the filename */
|
|
STATUS_CLIENT_DMG = "pkg/${utils.pkgFilename('dmg')}"
|
|
}
|
|
|
|
stages {
|
|
stage('Deps') {
|
|
steps {
|
|
/* avoid re-compiling Nim by using cache */
|
|
cache(maxCacheSize: 250, caches: [[
|
|
$class: 'ArbitraryFileCache',
|
|
includes: '**/*',
|
|
path: 'vendor/nimbus-build-system/vendor/Nim/bin'
|
|
]]) {
|
|
sh 'make deps'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('status-go') {
|
|
steps { sh 'make status-go' }
|
|
}
|
|
|
|
stage('Package') {
|
|
steps {
|
|
withCredentials([
|
|
string(
|
|
credentialsId: 'macos-keychain-identity',
|
|
variable: 'MACOS_CODESIGN_IDENT'
|
|
),
|
|
string(
|
|
credentialsId: 'macos-keychain-pass',
|
|
variable: 'MACOS_KEYCHAIN_PASS'
|
|
),
|
|
file(
|
|
credentialsId: 'macos-keychain-file',
|
|
variable: 'MACOS_KEYCHAIN_FILE'
|
|
),
|
|
string(
|
|
credentialsId: utils.getInfuraTokenCred(),
|
|
variable: 'INFURA_TOKEN'
|
|
)
|
|
]) {
|
|
sh 'make pkg-macos'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Parallel Upload') {
|
|
parallel {
|
|
stage('Upload') {
|
|
steps { script {
|
|
env.PKG_URL = s3.uploadArtifact(env.STATUS_CLIENT_DMG)
|
|
jenkins.setBuildDesc(Dmg: env.PKG_URL)
|
|
} }
|
|
}
|
|
stage('Archive') {
|
|
steps { script {
|
|
archiveArtifacts(env.STATUS_CLIENT_DMG)
|
|
} }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success { script { github.notifyPR(true) } }
|
|
failure { script { github.notifyPR(false) } }
|
|
always { cleanWs() }
|
|
}
|
|
}
|