From b33afa291a129943bccbd28ed301d7465a8df265 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 14 Jan 2016 13:56:37 +0100 Subject: [PATCH] rh-bkr: build package for beaker script in beaker task Building NetworkManager during kickstart has the serious disadvantage that we don't yet run the installed system. E.g. if the kernel has issues there, it fails `make check` of the build process, although the later run kernel is fine. Also, a failure during kickstart does not allow to access the machine later to inspect the failure reason (e.g. the testing logfiles). Instead, move the building to a separate script and run it as a beaker task. --- contrib/rh-bkr/build-from-source.sh | 126 ++++++++++++++++++++++++++++ contrib/rh-bkr/job01.xml | 78 ++--------------- 2 files changed, 131 insertions(+), 73 deletions(-) create mode 100755 contrib/rh-bkr/build-from-source.sh diff --git a/contrib/rh-bkr/build-from-source.sh b/contrib/rh-bkr/build-from-source.sh new file mode 100755 index 0000000000..d87810296e --- /dev/null +++ b/contrib/rh-bkr/build-from-source.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +set -e +set -xv + +BUILD_DIR="${BUILD_DIR:-/tmp/nm-build}" +BUILD_ID="${BUILD_ID:-master}" +BUILD_REPO="${BUILD_REPO-git://anongit.freedesktop.org/NetworkManager/NetworkManager}" +ARCH="${ARCH:-`arch`}" +DO_TEST_BUILD="${DO_TEST_BUILD:-yes}" +DO_TEST_PACKAGE="${DO_TEST_PACKAGE:-yes}" +DO_INSTALL="${DO_INSTALL:-yes}" + +if [ -z "$SUDO" ]; then + unset SUDO +fi + +$SUDO yum install \ + git \ + rpm-build \ + valgrind \ + dbus-devel \ + dbus-glib-devel \ + wireless-tools-devel \ + glib2-devel \ + gobject-introspection-devel \ + gettext-devel \ + pkgconfig \ + libnl3-devel \ + 'perl(XML::Parser)' \ + 'perl(YAML)' \ + automake \ + ppp-devel \ + nss-devel \ + dhclient \ + readline-devel \ + audit-libs-devel \ + gtk-doc \ + libudev-devel \ + libuuid-devel \ + libgudev1-devel \ + vala-tools \ + iptables \ + bluez-libs-devel \ + systemd \ + libsoup-devel \ + libndp-devel \ + ModemManager-glib-devel \ + newt-devel \ + /usr/bin/dbus-launch \ + pygobject3-base \ + dbus-python \ + libselinux-devel \ + polkit-devel \ + teamd-devel \ + -y + +# for the tests, let's pre-load some modules: +$SUDO modprobe ip_gre + +mkdir -p "$BUILD_DIR" +cd "$BUILD_DIR" + +rm -rf "./NetworkManager" +git clone "$BUILD_REPO" +cd "./NetworkManager/" +git checkout "$BUILD_ID" + + +if [[ "$DO_TEST_BUILD" == yes ]]; then + NOCONFIGURE=yes ./autogen.sh + + ./configure \ + --enable-maintainer-mode \ + --enable-more-warnings=error \ + --prefix=/opt/test \ + --sysconfdir=/etc \ + --enable-gtk-doc \ + --enable-more-asserts \ + --with-more-asserts=100 \ + --enable-more-logging \ + --enable-compile-warnings=yes\ + --with-valgrind=no \ + --enable-concheck \ + --enable-ifcfg-rh \ + --enable-ifcfg-suse \ + --enable-ifupdown \ + --enable-ifnet \ + --enable-vala=yes \ + --enable-polkit=yes \ + --with-nmtui=yes \ + --with-modem-manager-1 \ + --with-suspend-resume=systemd \ + --enable-teamdctl=yes \ + --enable-tests=root \ + --with-netconfig=yes \ + --with-crypto=nss \ + --with-session-tracking=systemd \ + --with-consolekit=yes \ + --with-systemd-logind=yes \ + --with-consolekit=yes + + make -j4 + make check -k +fi + +if [[ "$DO_TEST_PACKAGE" == yes || "$DO_INSTALL" == yes ]]; then + ./contrib/fedora/rpm/build_clean.sh -c +fi + +if [[ "$DO_INSTALL" == yes ]]; then + pushd "./contrib/fedora/rpm/latest/RPMS/$ARCH/" + for p in $(ls -1 ./*.rpm | sed 's#.*\(NetworkManager.*\)-1\.[0-9]\..*#\1#'); do + $SUDO rpm -e --nodeps $p || true + done + $SUDO yum install -y ./*.rpm + popd + + # ensure that the expected NM is installed. + COMMIT_ID="$(git rev-parse --verify HEAD | sed 's/^\(.\{10\}\).*/\1/')" + $SUDO yum list installed NetworkManager | grep -q -e "\.$COMMIT_ID\." + + $SUDO systemctl restart NetworkManager +fi + +echo "BUILDING $BUILD_ID COMPLETED SUCCESSFULLY" diff --git a/contrib/rh-bkr/job01.xml b/contrib/rh-bkr/job01.xml index ad8a36327c..088f4b0cad 100644 --- a/contrib/rh-bkr/job01.xml +++ b/contrib/rh-bkr/job01.xml @@ -53,79 +53,6 @@ if [[ -n "$RPM_LIST" ]]; then yum install -y $RPM_LIST fi - -if [[ -n "$BUILD_ID" ]]; then - - yum install -y git rpm-build valgrind dbus-devel dbus-glib-devel wireless-tools-devel glib2-devel gobject-introspection-devel gettext-devel pkgconfig libnl3-devel 'perl(XML::Parser)' 'perl(YAML)' automake ppp-devel nss-devel dhclient readline-devel audit-libs-devel gtk-doc libudev-devel libuuid-devel libgudev1-devel vala-tools iptables bluez-libs-devel systemd libsoup-devel libndp-devel ModemManager-glib-devel newt-devel /usr/bin/dbus-launch pygobject3-base dbus-python libselinux-devel polkit-devel teamd-devel - - mkdir /root/nm-build - cd /root/nm-build - - git clone "$BUILD_REPO" - cd "./NetworkManager/" - git checkout "$BUILD_ID" - - # for the tests, let's load some modules: - modprobe ip_gre - - if [[ "$BUILD_TEST" != "" ]]; then - NOCONFIGURE=yes ./autogen.sh - - ./configure \ - --enable-maintainer-mode \ - --enable-more-warnings=error \ - --prefix=/opt/test \ - --sysconfdir=/etc \ - --enable-gtk-doc \ - --enable-more-asserts \ - --with-more-asserts=100 \ - --enable-more-logging \ - --enable-compile-warnings=yes\ - --with-valgrind=no \ - --enable-concheck \ - --enable-ifcfg-rh \ - --enable-ifcfg-suse \ - --enable-ifupdown \ - --enable-ifnet \ - --enable-vala=yes \ - --enable-polkit=yes \ - --with-nmtui=yes \ - --with-modem-manager-1 \ - --with-suspend-resume=systemd \ - --enable-teamdctl=yes \ - --enable-tests=root \ - --with-netconfig=yes \ - --with-crypto=nss \ - --with-session-tracking=systemd \ - --with-consolekit=yes \ - --with-systemd-logind=yes \ - --with-consolekit=yes - - make -j4 - if ! make check -k ; then - find -regex '.*/tests/[^/]+.log$$' -exec sh -c 'echo ">>>> $$1"; cat "$$1"' '--' '{}' ';' - echo ">> test failed" - NMTST_DEBUG=TRACE,no-expect-messages make check -k || : - find -regex '.*/tests/[^/]+.log$$' -exec sh -c 'echo ">>>> $$1"; cat "$$1"' '--' '{}' ';' - exit 57 - fi - fi - - ./contrib/fedora/rpm/build_clean.sh -c - - pushd "./contrib/fedora/rpm/latest/RPMS/$ARCH/" - for p in $$(ls -1 ./*.rpm | sed 's#.*\(NetworkManager.*\)-1\.[0-9]\..*#\1#'); do - rpm -e --nodeps $$p || true - done - yum install -y ./*.rpm - popd - - # ensure that the expected NM is installed. - COMMIT_ID="$$(git rev-parse --verify HEAD | sed 's/^\(.\{10\}\).*/\1/')" - yum list installed NetworkManager | grep -q -e "\.$$COMMIT_ID\." - - echo "BUILD '$BUILD_ID' COMPLETE" -fi %end ]]> @@ -158,6 +85,11 @@ fi + + + + +