#!/usr/bin/env groovy library 'status-jenkins-lib@v1.8.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'] ) } 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: '1', )) /* Abort old PR builds. */ disableConcurrentBuilds( abortPrevious: isPRBuild ) } environment { PLATFORM = 'tests/ui' /* 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}" } stages { stage('Build StatusQ Tests') { steps { sh 'make statusq-tests' } } stage('Build StatusQ Sanity Checker') { steps { sh 'make statusq-sanity-checker' } } stage('Build Storybook') { steps { sh 'make storybook-build' } } stage('Check StatusQ 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 StatusQ Sanity Checker') { 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('Check Storybook Tests') { steps { script { /* Needed for QGuiApplication to import QtQuick.Dialogs */ wrap([ $class: 'Xvfb', autoDisplayName: true, parallelBuild: true, screen: '2560x1440x24', ]) { sh('make run-storybook-tests') } } } } stage('Check Storybook Pages Validator') { steps { script { /* Needed for QGuiApplication to import QtQuick.Dialogs */ wrap([ $class: 'Xvfb', autoDisplayName: true, parallelBuild: true, screen: '2560x1440x24', ]) { sh('make run-storybook-pages-validator') } } } } stage('Upload') { steps { script { env.PKG_URL = "${currentBuild.absoluteUrl}/consoleText" } } } } post { success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } cleanup { cleanWs() } } }