diff --git a/Makefile b/Makefile index ae5622ccee6ab962fcfd33994cc1778ae751494b..255122f922b5de6446bdc68b5f17f681e30c1e83 100644 --- a/Makefile +++ b/Makefile @@ -93,7 +93,7 @@ _build/%/build.stamp: _build/%/config.stamp $(sysroot)/etc/debian_version $(in_sysroot) $(MAKE) -C _build/$*/libcapsule touch $@ -install-%: +install-%: _build/%/build.stamp mkdir -p relocatable-install/bin $(in_sysroot) $(MAKE) in-sysroot/install-$* diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile new file mode 100644 index 0000000000000000000000000000000000000000..562348514be7ee4256484aff4e6ff0eee78c760a --- /dev/null +++ b/ci/Jenkinsfile @@ -0,0 +1,117 @@ +#!/usr/bin/env groovy +/* + * SPDX-License-Identifier: LGPL-2.1+ + * + * Copyright © 2017-2018 Collabora Ltd + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this package. If not, see + * <http://www.gnu.org/licenses/>. + */ +@Library('steamos-ci') _ + +pipeline { + agent none + + options { + timestamps() + skipDefaultCheckout() + } + + stages { + stage ("libcapsule") { + agent { + docker { + label 'docker-slave' + 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 + git config --global user.email nobody@example.com + ''' + checkout changelog: true, poll: true, scm: [ + $class: 'GitSCM', + branches: [[name: "origin/master"]], + extensions: [[$class: 'PruneStaleBranch'], [$class: 'RelativeTargetDirectory', relativeTargetDir: 'libcapsule']], + userRemoteConfigs: [[name: 'origin', url: "git@gitlab.collabora.com:vivek/libcapsule", credentialsId: 'GITLABSSHKEY']] + ] + sh ''' + set -e + 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 libcapsule; deb-build-snapshot -d ../debs --no-check -s -u localhost ) + ''' + stash name: 'debs', includes: 'debs/**' + } + post { + always { + deleteDir() + } + } + } + + stage ("pressure-vessel") { + agent { + docker { + label 'docker-slave' + image "docker-registry.internal.collabora.com/steamos/package-builder:jessie" + 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 + git config --global user.email nobody@example.com + ''' + checkoutCollaboraGitlab('steam/pressure-vessel', 'master', 'src') + unstash 'debs' + sh ''' + set -e + 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 + mv debs/*.dsc debs/*.tar.* src/ + ( cd src; make sysroot=/ ) + ''' + archiveArtifacts 'src/pressure-vessel-*-bin.tar.gz' + } + post { + always { + deleteDir() + } + } + } + } +} +/* vim:set sw=2 sts=2 et: */