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: */