ci: Run a subset ⊂ of rpm-ostree's tests
authorColin Walters <walters@verbum.org>
Tue, 9 Jan 2018 18:20:24 +0000 (13:20 -0500)
committerAtomic Bot <atomic-devel@projectatomic.io>
Fri, 19 Jan 2018 14:16:51 +0000 (14:16 +0000)
This is a quick hack to get us more than unit testing, albeit indirectly.

See: https://github.com/projectatomic/rpm-ostree/issues/662

Closes: #771
Approved by: jlebon

.papr.yml
ci/rpmostree.sh [new file with mode: 0755]

index bc22d63f5236c38358384115e73296555f3cf22b..d33046ec61a9c84bb54d9e4dac47e961df23c273 100644 (file)
--- a/.papr.yml
+++ b/.papr.yml
@@ -181,3 +181,39 @@ tests:
 
 artifacts:
   - test-suite.log
+
+---
+
+# Run rpm-ostree's vmcheck.  This is a temporary hack until
+# we share more code. https://github.com/projectatomic/rpm-ostree/issues/662
+inherit: false
+
+branches:
+    - master
+    - auto
+    - try
+
+context: f27-rpmostree
+required: true
+
+cluster:
+  hosts:
+    - name: vmcheck
+      distro: fedora/27/atomic
+  container:
+    image: registry.fedoraproject.org/fedora:27
+
+env:
+  HOSTS: vmcheck
+  # This should roughly match the Fedora spec file, although right now we don't
+  # explicitly enable gtk-doc because we don't really need it
+  CONFIGOPTS: '--with-selinux --with-dracut=yesbutnoconf --with-curl --with-openssl'
+
+tests:
+  - ./ci/rpmostree.sh
+
+artifacts:
+  - test-suite.log
+  - vmcheck
+
+timeout: 60m
diff --git a/ci/rpmostree.sh b/ci/rpmostree.sh
new file mode 100755 (executable)
index 0000000..d40dd6a
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+# Build and run rpm-ostree's unit tests using the just-built ostree for this PR.
+
+set -xeuo pipefail
+
+# Frozen to a tag for now to help predictability; it's
+# also useful to test building *older* versions since
+# that must work.
+RPMOSTREE_TAG=v2017.11
+
+dn=$(dirname $0)
+. ${dn}/libbuild.sh
+
+codedir=$(pwd)
+
+pkg_upgrade
+pkg_install_builddeps ostree
+pkg_install_builddeps rpm-ostree
+pkg_install rpm-ostree && rpm -e rpm-ostree
+
+# Duplicate of deps from build.sh in rpm-ostree for tests
+pkg_install ostree{,-devel,-grub2} createrepo_c /usr/bin/jq PyYAML \
+            libubsan libasan libtsan elfutils fuse sudo python-gobject-base \
+            selinux-policy-devel selinux-policy-targeted
+# This one is in the papr.yml
+pkg_install rsync
+
+# build+install ostree
+cd ${codedir}
+build ${CONFIGOPTS:-}
+make install
+
+tmpd=$(mktemp -d)
+cd ${tmpd}
+git clone --recursive --depth=1 -b ${RPMOSTREE_TAG} https://github.com/projectatomic/rpm-ostree
+cd rpm-ostree
+build
+# We want to capture automake results
+cleanup() {
+    mv test-suite.log ${codedir} || true
+}
+trap cleanup EXIT
+make -j 8 check
+# Basic sanity test of rpm-ostree+new ostree by restarting rpm-ostreed
+if ! make vmsync; then
+    ssh -o User=root vmcheck 'journalctl --no-pager | tail -1000'
+    fatal "vmsync failed"
+fi
+# Now run tests; just a subset ⊂ for now to avoid CI overload
+make vmcheck TESTS="basic layering-basic"