node('docker') {
    docker.image('gstreamer/build-base-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.GST_UNINSTALLED_ROOT="${env.WORKSPACE}"
	env.HOME="${env.WORKSPACE}"
	env.DISPLAY=":0"

	stage('Checkout') {
	    if (params.wipe) {
		sh 'rm -Rf *'
	    }
	    checkout([$class: 'RepoScm',
		    manifestRepositoryUrl:'https://git.arracacha.collabora.co.uk/git/gst-manifest.git',
		    manifestBranch:"refs/tags/${params.build_tag}",
		    jobs:4,
		    currentBranch:true,
		    quiet:true,
		    depth:0,
		    mirrorDir:'/repositories'])
	}
	
	stage('Cleanup') {
	    sh 'rm -f **/tests/check/*/*.xml'
	}
	
	stage ('Build') {
	    sh "uname -a"
	    sh "./gstreamer/scripts/gst-uninstalled ./gst-ci-scripts/ci-build.sh fast-build-only"
	}

	withEnv(['DISPLAY=:0']) {
	    stage ('Check') {
		env.GST_CHECKS_IGNORE="test_allocate_udp_ports_multicast,test_allocate_udp_ports_client_settings,test_reorder_buffer,test_redirect_yes"
		env.GST_CHECK_XML=1
		sh 'Xvfb :0 -screen 0 1024x768x24 -fbdir /tmp &'
		sh 'env'
		sh "./gstreamer/scripts/gst-uninstalled ./gst-ci-scripts/ci-build.sh check"

		step([$class: 'XUnitBuilder',
			testTimeMargin: '3000', thresholdMode: 1,
			thresholds: [[$class: 'FailedThreshold',
				failureNewThreshold: '',
				failureThreshold: '400',
				unstableNewThreshold: '',
				unstableThreshold: '1'],
			    [$class: 'SkippedThreshold',
				failureNewThreshold: '',
				failureThreshold: '',
				unstableNewThreshold: '',
				unstableThreshold: '']],
			tools: [[$class: 'CheckType',
				deleteOutputFiles: true,
				failIfNotNew: true,
				pattern: '**/tests/check/*/*.xml',
				skipNoTestFiles: true,
				stopProcessingIfError: true]]])
	    }
	}
    }
}