mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-20 11:29:20 +00:00
37c51cc25f
Make the docker-related logic for doing a local packaged build on Linux match with the Jenkins CI build for Linux. Also fix the problems with packaged builds for Linux (local or CI) where gstreamer errors were displayed in the terminal shortly after app start/login and there was no sound output.
90 lines
2.2 KiB
Plaintext
90 lines
2.2 KiB
Plaintext
library 'status-jenkins-lib@v1.2.13'
|
|
|
|
pipeline {
|
|
agent {
|
|
docker {
|
|
label 'linux'
|
|
image 'statusteam/nim-status-client-build:1.0.2'
|
|
/* allows jenkins use cat and mounts '/dev/fuse' for linuxdeployqt */
|
|
args '--entrypoint="" --cap-add SYS_ADMIN --security-opt apparmor:unconfined --device /dev/fuse'
|
|
}
|
|
}
|
|
|
|
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',
|
|
artifactNumToKeepStr: '3',
|
|
))
|
|
}
|
|
|
|
environment {
|
|
TARGET = 'linux'
|
|
/* Improve make performance */
|
|
MAKEFLAGS = '-j4'
|
|
/* Disable colors in Nim compiler logs */
|
|
NIMFLAGS = '--colors:off'
|
|
/* Makefile assumes the compiler folder is included */
|
|
QTDIR = "/opt/qt/5.14.0/gcc_64"
|
|
/* Control output the filename */
|
|
STATUS_CLIENT_APPIMAGE = "pkg/${utils.pkgFilename('AppImage')}"
|
|
}
|
|
|
|
stages {
|
|
stage('Deps') {
|
|
steps {
|
|
/* trigger fetching of git submodules */
|
|
sh 'make check-pkg-target-linux'
|
|
/* 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: utils.getInfuraTokenCred(),
|
|
variable: 'INFURA_TOKEN'
|
|
)]) {
|
|
sh 'make pkg-linux'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Parallel Upload') {
|
|
parallel {
|
|
stage('Upload') {
|
|
steps { script {
|
|
env.PKG_URL = s3.uploadArtifact(env.STATUS_CLIENT_APPIMAGE)
|
|
jenkins.setBuildDesc(AppImage: env.PKG_URL)
|
|
} }
|
|
}
|
|
stage('Archive') {
|
|
steps { script {
|
|
archiveArtifacts(env.STATUS_CLIENT_APPIMAGE)
|
|
} }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success { script { github.notifyPR(true) } }
|
|
failure { script { github.notifyPR(false) } }
|
|
always { cleanWs() }
|
|
}
|
|
}
|