status-desktop/ci/Jenkinsfile.tests-nim

78 lines
1.8 KiB
Groovy

#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.7'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
pipeline {
agent {
docker {
label 'linux'
image 'statusteam/nim-status-client-build:1.5.0-qt5.15.2'
}
}
parameters {
choice(
name: 'VERBOSE',
description: 'Level of verbosity based on nimbus-build-system setup.',
choices: ['0', '1', '2']
)
string(
name: 'NIMFLAGS',
description: 'Extra Nim flags. Examples: --verbosity:2 --passL:"-v" --passC:"-v"',
defaultValue: '--colors:off'
)
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 20, unit: 'MINUTES')
/* manage how many builds we keep */
buildDiscarder(logRotator(
numToKeepStr: '10',
daysToKeepStr: '30',
artifactNumToKeepStr: '1',
))
/* Abort old PR builds. */
disableConcurrentBuilds(
abortPrevious: isPRBuild
)
}
environment {
PLATFORM = 'tests/nim'
/* Improve make performance */
MAKEFLAGS = "-j${utils.getProcCount()} V=${params.VERBOSE}"
/* Makefile assumes the compiler folder is included */
QTDIR = "/opt/qt/5.15.2/gcc_64"
/* Avoid weird bugs caused by stale cache. */
QML_DISABLE_DISK_CACHE = "true"
/* Include library in order to compile the project */
LD_LIBRARY_PATH = "$QTDIR/lib"
}
stages {
stage('Deps') {
steps {
sh 'make update'
sh 'make deps'
}
}
stage('Tests') {
steps {
sh 'make tests-nim-linux V=1'
}
}
}
post {
success { script { github.notifyPR(true) } }
failure { script { github.notifyPR(false) } }
always { script { env.PKG_URL = "${currentBuild.absoluteUrl}/consoleText" } }
cleanup { cleanWs() }
}
}