node('docker') { docker.image('gstreamer/build-meson-fedora:latest').inside { env.CCACHE_DIR = "${env.WORKSPACE}/.ccache" env.CCACHE_MAXSIZE = "2G" env.CC = "ccache gcc" env.CXX = "ccache g++" env.MAKEFLAGS = "-j6" env.PATH = "${env.WORKSPACE}:${env.PATH}" env.HOME="${env.WORKSPACE}" env.DISPLAY=":0" stage('Checkout') { if (params.wipe) { sh 'rm -Rf build/' } checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', depth: 0, noTags: false, reference: '/gstbuild/gst-build/', shallow: false]], submoduleCfg: [], userRemoteConfigs: [[url: 'git://anongit.freedesktop.org/gstreamer/gst-build']]] ) sh 'git checkout master && git reset --hard origin/master' sh 'curl "https://git.arracacha.collabora.co.uk/cgit/gst-manifest.git/plain/default.xml?id=$BUILD_TAG" -k -o manifest.xml' } stage('Setup') { sh './git-update --no-color --manifest=manifest.xml --no-interaction' sh './setup.py -Ddisable_gstreamer_vaapi=true' } stage ('Build') { sh "ninja -C build" } stage ('Check') { sh "./gst-uninstalled.py gst-validate-launcher --check-bugs --no-display --mute -n check --xunit-file $WORKSPACE/xunit.xml -M $WORKSPACE/validate-output --ignore-numfailures" step([$class: 'XUnitBuilder', testTimeMargin: '3000', thresholdMode: 1, thresholds: [[$class: 'FailedThreshold', failureNewThreshold: '', failureThreshold: '5', unstableNewThreshold: '', unstableThreshold: '1'], [$class: 'SkippedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: '']], tools: [[$class: 'JUnitType', deleteOutputFiles: true, failIfNotNew: true, pattern: 'xunit.xml', skipNoTestFiles: true, stopProcessingIfError: true]]]) } stage('install') { sh 'mkdir -p dest' sh 'DESTDIR=$PWD/dest ninja -C build install' } stage('package') { sh 'cd dest && tar caJf gstreamer-$BUILD_TAG.tar.xz usr' } } }