This repository contains all material relevant to the GStreamer
Continuous Integration system.
-* Jenkins scripts
-
* Docker images
* Build scripts and code
+++ /dev/null
-node("docker") {
- docker.image('gstreamer/build-base-ubuntu:latest').inside {
-
- env.OUTPREFIX="${env.WORKSPACE}/../output/${params.build_tag}/linux_x86_64/"
-
- stage('Checkout') {
- // FIXME: Only checkout the manifest and not all dependencies ?
- checkout([$class: 'RepoScm',
- manifestRepositoryUrl:'git+ssh://git.arracacha.collabora.co.uk/git/gst-manifest.git',
- manifestBranch:"refs/tags/${params.build_tag}",
- jobs:4,
- currentBranch:true,
- quiet:true,
- depth:0])
- }
-
- stage('Setup') {
- sh "find ../output -maxdepth 1 -ctime +1 | xargs rm -Rf"
- sh "cd .repo/manifests/; git checkout ${params.build_tag}; cd ../.."
- sh "rm -Rf ./workdir/sources/linux_x86_64/"
- sh "rm -f *.rpm"
- sh "rm -Rf ./workdir/temp; mkdir -p ./workdir/temp"
- sh "rm -Rf ./workdir/tmp*"
-
- // Create custom configuration file
- sh "./gst-ci-scripts/manifest2cerbero.py .repo/manifests/default.xml ./cerbero/config/linux.config --output localconf.cbc"
- sh '''echo "home_dir = \\"$WORKSPACE/workdir\\"" >> localconf.cbc'''
- sh '''echo "logs = \\"$OUTPREFIX/logs\\"" >> localconf.cbc'''
- sh './cerbero/cerbero-uninstalled -c localconf.cbc show-config'
- }
-
- stage('bootstrap') {
- sh './cerbero/cerbero-uninstalled -c localconf.cbc bootstrap'
- sh 'rm -Rf ./workdir/sources/build-tools/'
- }
-
- stage('fetch') {
- sh './cerbero/cerbero-uninstalled -c localconf.cbc fetch-package --reset-rdeps --full-reset gstreamer-1.0'
- }
-
- stage('package') {
- sh './cerbero/cerbero-uninstalled -c localconf.cbc package gstreamer-1.0'
- }
-
- stage('Cleanup') {
- sh 'rm -f *.rpm'
- sh 'find ../output -maxdepth 1 -ctime +1 | xargs rm -Rf'
- }
- // FIXME: IRC Notification
- }
-}
+++ /dev/null
-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]]])
- }
- }
- }
-}
+++ /dev/null
-node('docker') {
- docker.image('gstreamer/build-base-ubuntu: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]]])
- }
- }
- }
-}
+++ /dev/null
-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'
- }
- }
-}