From 74f2d5735c6af31a301974a4c50c1ab749bb1dd7 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Sat, 21 Oct 2017 12:07:02 +0200 Subject: [PATCH] Initial commit --- README.txt | 11 +++++++ jenkins/Jenkinsfile-master-fedora | 66 +++++++++++++++++++++++++++++++++++++ jenkins/Jenkinsfile-meson-fedora | 69 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 README.txt create mode 100644 jenkins/Jenkinsfile-master-fedora create mode 100644 jenkins/Jenkinsfile-meson-fedora diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..1a3174d --- /dev/null +++ b/README.txt @@ -0,0 +1,11 @@ +GStreamer Continuous Integration +================================ + +This repository contains all material relevant to the GStreamer +Continuous Integration system. + +* Jenkins scripts + +* Docker images + +* Build scripts and code diff --git a/jenkins/Jenkinsfile-master-fedora b/jenkins/Jenkinsfile-master-fedora new file mode 100644 index 0000000..000416a --- /dev/null +++ b/jenkins/Jenkinsfile-master-fedora @@ -0,0 +1,66 @@ +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]]]) + } + } + } +} diff --git a/jenkins/Jenkinsfile-meson-fedora b/jenkins/Jenkinsfile-meson-fedora new file mode 100644 index 0000000..553a19d --- /dev/null +++ b/jenkins/Jenkinsfile-meson-fedora @@ -0,0 +1,69 @@ +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: '400', + 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 dest' + sh 'DESTDIR=$PWD/dest ninja -C build install' + } + + } +} -- 2.7.4