#!/usr/bin/env groovy library 'status-jenkins-lib@v1.7.13' /* Options section can't access functions in objects. */ def isPRBuild = utils.isPRBuild() pipeline { agent { label 'linux && x86_64 && qt-5.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: 120, unit: 'MINUTES') /* manage how many builds we keep */ buildDiscarder(logRotator( numToKeepStr: '10', daysToKeepStr: '30', artifactNumToKeepStr: '3', )) /* Abort old PR builds. */ disableConcurrentBuilds( abortPrevious: isPRBuild ) } environment { TARGET = 'tests/statusq' /* Improve make performance */ MAKEFLAGS = "-j4 V=${params.VERBOSE}" /* Makefile assumes the compiler folder is included */ QTDIR = "/opt/qt/5.15.2/gcc_64" PATH = "${env.QTDIR}/bin:${env.PATH}" /* Include library in order to compile the project */ LD_LIBRARY_PATH = "$QTDIR/lib:$WORKSPACE/vendor/status-go/build/bin:$WORKSPACE/vendor/status-keycard-go/build/libkeycard/" } stages { stage('Build Tests') { steps { sh 'make statusq-tests' } } stage('Build Sanity') { steps { sh 'make statusq-sanity-checker' } } stage('Check Tests') { steps { script { /* Needed for QGuiApplication to import QtQuick.Dialogs */ wrap([ $class: 'Xvfb', autoDisplayName: true, parallelBuild: true, screen: '2560x1440x24', ]) { sh('make run-statusq-tests') } } } } stage('Check Sanity') { steps { script { /* Needed for QGuiApplication to import QtQuick.Dialogs */ wrap([ $class: 'Xvfb', autoDisplayName: true, parallelBuild: true, screen: '2560x1440x24', ]) { sh('make run-statusq-sanity-checker') } } } } stage('Upload') { steps { script { env.PKG_URL = "${currentBuild.absoluteUrl}/consoleText" } } } } post { success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } cleanup { cleanWs() } } }