diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fd63f5ef6b6b60c1d04f853d434364f43770c17f..3c667e62dc94247cfac066baae193777afc0544f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,22 @@
+include:
+    - project: 'steam/steam-ci-pipeline'
+      file: '/steam-gitlab-ci-common.yml'
+
+    - project: 'steam/steam-ci-pipeline'
+      file: '/steam-gitlab-ci-pipeline.yml'
+
 variables:
+    BUILD_IMAGE: docker.internal.steamos.cloud/steamrt/sdk:scout-latest
+    STEAM_CI_USE_BINARIES_FROM: autopkgtest
+    STEAM_CI_DEPENDENCIES: >-
+        debhelper
+        libglib2.0-dev
+        libxau-dev
+        meson
+        python3
+        python3.5
+        zlib1g
+
     DEBIAN_FRONTEND: noninteractive
 
     SCOUT_DOCKER_REGISTRY: docker.steamos.cloud
@@ -7,7 +25,12 @@ variables:
     DEVEL_DOCKER_REGISTRY: docker.steamos.cloud
     DEVEL_DOCKER_IMAGE: steamos/package-builder:buster
 
+build:
+    variables:
+        BUILD_IMAGE: docker.internal.steamos.cloud/steamos/package-builder:buster
+
 build:devel:
+    stage: build
     image: "${DEVEL_DOCKER_REGISTRY}/${DEVEL_DOCKER_IMAGE}"
     script:
         - |
@@ -25,6 +48,7 @@ build:devel:
             meson test --verbose -C _build
 
 build:scout:
+    stage: build
     image: "${SCOUT_DOCKER_REGISTRY}/${SCOUT_DOCKER_IMAGE}"
     script:
         - |
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000000000000000000000000000000000000..550f3cf372d55103817effc4ea904ce9ce46f2d2
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,2 @@
+Tests: relocatable-install
+Restrictions: allow-stderr, needs-root
diff --git a/debian/tests/relocatable-install b/debian/tests/relocatable-install
new file mode 100755
index 0000000000000000000000000000000000000000..6c3685befd2e49fc0b273f3148d328fcb358b9cb
--- /dev/null
+++ b/debian/tests/relocatable-install
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -eux
+
+dpkg --add-architecture amd64
+dpkg --add-architecture i386
+apt-get -y install \
+    libcapsule-tools-relocatable:amd64 \
+    libcapsule-tools-relocatable:i386 \
+    ${NULL+}
+
+/usr/lib/pressure-vessel/relocatable/bin/pressure-vessel-build-relocatable-install \
+    --output "${AUTOPKGTEST_TMP}/relocatable-install" \
+    --archive "${AUTOPKGTEST_TMP}"
+
+./tests/relocatable-install.py "${AUTOPKGTEST_TMP}/relocatable-install"
+
+for archive in "${AUTOPKGTEST_TMP}"/*.tar.*; do
+    echo "==== $(basename "$archive") ===="
+    tar -tvf "$archive"
+done
+
+# TODO: When the coordinator can accept bigger artifacts, use
+# --archive=${AUTOPKGTEST_ARTIFACTS} instead