gstreamer/ci/jenkins/Jenkinsfile-meson-fedora
Thibault Saunier 091946a478 ci: Port CI to the new monorepo
Main differences with previous setup are:
- No manifest creation
- gst-indent is executed only when the bot is assigned (instead of the manifest task)
- Cerbero jobs are triggered in the cerbero repo
- Remove cerbero and android related files as they now are in cerbero
  itself.
- Update `container.ps1` to the new file layout

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/891>
2021-09-24 16:21:18 -03:00

72 lines
2.1 KiB
Plaintext

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'
}
}
}