From 85a29aa7d8f91916045138a6a64361d593ce333c Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Thu, 17 May 2018 19:47:03 +0100 Subject: [PATCH] ci: Run autopkgtests on Debian stretch and SteamOS brewmaster Signed-off-by: Simon McVittie <smcv@collabora.com> --- ci/Jenkinsfile | 110 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 80 insertions(+), 30 deletions(-) diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile index 1a6fa957e..caf53f9a2 100644 --- a/ci/Jenkinsfile +++ b/ci/Jenkinsfile @@ -21,19 +21,7 @@ @Library('steamos-ci') _ pipeline { - agent { - docker { - label 'docker-slave' - image "steamos/package-builder:${env.docker_label ?: 'brewmaster'}" - registryUrl 'https://docker-registry.internal.collabora.com' - registryCredentialsId 'ccu-docker-internal-collabora-com' - } - } - environment { - HOME="${env.WORKSPACE}" - TMPDIR="${env.WORKSPACE}" - PYTHONUNBUFFERED="1" - } + agent none options { timestamps() @@ -41,31 +29,93 @@ pipeline { } stages { - stage ("checkout") { + stage ("deb-build-snapshot") { + agent { + docker { + label 'docker-slave' + image "docker-registry.internal.collabora.com/steamos/package-builder:${env.CI_SUITE ?: 'brewmaster'}" + registryUrl 'https://docker-registry.internal.collabora.com' + registryCredentialsId 'ccu-docker-internal-collabora-com' + alwaysPull true + } + } + environment { + HOME="${env.WORKSPACE}" + TMPDIR="${env.WORKSPACE}" + PYTHONUNBUFFERED="1" + } steps { - sh 'git config --global user.name Jenkins' - sh 'git config --global user.email nobody@example.com' + sh ''' + git config --global user.name Jenkins + git config --global user.email nobody@example.com + ''' checkoutCollaboraGitlab('vivek/libcapsule', 'master', 'src') - sh 'mkdir -p debs' + sh ''' + mkdir -p debs + echo "jenkins::$(id -u):$(id -g):Jenkins:$(pwd):/bin/sh" > passwd + export NSS_WRAPPER_PASSWD=$(pwd)/passwd + export NSS_WRAPPER_GROUP=/dev/null + export LD_PRELOAD=libnss_wrapper.so + ( cd src && deb-build-snapshot -d ../debs -s -u localhost ) + ''' + stash name: 'debs', includes: 'debs/**' + archiveArtifacts 'debs/**' } - } - - stage("deb-build-snapshot") { - steps { - sh '( cd src && deb-build-snapshot -d ../debs -s -u localhost )' + post { + always { + deleteDir() + } } } - stage("Save output") { - steps { - archiveArtifacts artifacts: 'debs/**' + stage ("autopkgtest") { + agent { + docker { + label 'docker-slave' + args '--device=/dev/kvm' + image 'docker-registry.internal.collabora.com/steamos/package-builder:stretch' + registryUrl 'https://docker-registry.internal.collabora.com' + registryCredentialsId 'ccu-docker-internal-collabora-com' + alwaysPull true + } } - } - } + environment { + HOME="${env.WORKSPACE}" + TMPDIR="${env.WORKSPACE}" + PYTHONUNBUFFERED="1" + } + steps { + sh 'git config --global user.name Jenkins' + sh 'git config --global user.email nobody@example.com' + checkoutCollaboraGitlab('steam/steamos-devkit', 'master', 'src') + unstash 'debs' + sh ''' + mkdir -p tmp + mkdir -p output + wget --progress=dot:giga -O autopkgtest.qcow2 https://images.collabora.co.uk/steam/autopkgtest-virt-qemu/${CI_SUITE:=brewmaster}_amd64.qcow2 + + case "${CI_SUITE}" in + (brewmaster) + set -- --add-apt-source='deb http://deb.debian.org/debian jessie main' + for x in /etc/apt/trusted.gpg.d/*.gpg; do + set -- --copy="$x:$x" "$@" + done + ;; + (*) + set -- + ;; + esac - post { - always { - deleteDir() + autopkgtest "$@" --apt-upgrade --no-built-binaries --output-dir ./output/ debs/*.deb ./src/ -- qemu --qemu-options="-drive format=raw,read-only,if=pflash,file=/usr/share/ovmf/OVMF.fd" ./autopkgtest.qcow2 + ''' + } + post { + always { + archiveArtifacts 'output/**' + deleteDir() + } + } } } } +/* vim:set sts=2 sw=2 et: */ -- GitLab