mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 22:06:25 +00:00
Jakub Sokołowski
a802dcf916
For some release builds the notarization step fails because Apple backend takes too long to return results. But the timeout triggered is the Jenkins job timeout and no the notarization timeout. Signed-off-by: Jakub Sokołowski <jakub@status.im>
105 lines
2.5 KiB
Plaintext
105 lines
2.5 KiB
Plaintext
library 'status-jenkins-lib@v1.3.4'
|
|
|
|
pipeline {
|
|
agent {
|
|
label 'macos && x86_64'
|
|
}
|
|
|
|
parameters {
|
|
booleanParam(
|
|
name: 'RELEASE',
|
|
description: 'Decides whether binaries are built with debug symbols.',
|
|
defaultValue: params.RELEASE ?: false
|
|
)
|
|
choice(
|
|
name: 'VERBOSE',
|
|
description: 'Level of verbosity based on nimbus-build-system setup.',
|
|
choices: ['0', '1', '2']
|
|
)
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
/* Prevent Jenkins jobs from running forever */
|
|
timeout(time: 25, unit: 'MINUTES')
|
|
/* manage how many builds we keep */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '10',
|
|
daysToKeepStr: '30',
|
|
artifactNumToKeepStr: '3',
|
|
))
|
|
}
|
|
|
|
environment {
|
|
TARGET = 'macos'
|
|
/* Improve make performance */
|
|
MAKEFLAGS = "-j4 V=${params.VERBOSE}"
|
|
/* 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(ext: 'dmg')}"
|
|
/* Apple Team ID for Notarization */
|
|
MACOS_NOTARIZE_TEAM_ID = "DTX7Z4U3YA"
|
|
}
|
|
|
|
stages {
|
|
stage('Deps') {
|
|
steps {
|
|
/* trigger fetching of git submodules */
|
|
sh 'make check-pkg-target-macos'
|
|
/* TODO: Re-add caching of Nim compiler. */
|
|
withCredentials([
|
|
usernamePassword( /* For fetching HomeBrew bottles. */
|
|
credentialsId: "status-im-auto-pkgs",
|
|
usernameVariable: 'GITHUB_USER',
|
|
passwordVariable: 'GITHUB_TOKEN'
|
|
)
|
|
]) {
|
|
sh 'make deps'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('status-go') {
|
|
steps { sh 'make status-go' }
|
|
}
|
|
|
|
stage('Package') {
|
|
steps { script {
|
|
macos.bundle()
|
|
} }
|
|
}
|
|
|
|
stage('Notarize') {
|
|
when { expression { utils.isReleaseBuild() } }
|
|
steps { script {
|
|
macos.notarize()
|
|
} }
|
|
}
|
|
|
|
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() }
|
|
}
|
|
}
|