mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-08 02:30:18 +01:00
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.
This commit is contained in:
parent
1d2133d8b8
commit
b33afa291a
2 changed files with 131 additions and 73 deletions
126
contrib/rh-bkr/build-from-source.sh
Executable file
126
contrib/rh-bkr/build-from-source.sh
Executable file
|
|
@ -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"
|
||||
|
|
@ -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
|
||||
]]>
|
||||
</ks_append>
|
||||
|
|
@ -158,6 +85,11 @@ fi
|
|||
<param name="PKGARGNAME" value="python-setuptools python-netaddr pexpect bash-completion iw net-tools teamd NetworkManager radvd wireshark git firewalld psmisc bridge-utils"/>
|
||||
</params>
|
||||
</task>
|
||||
<task name="/distribution/command" role="STANDALONE">
|
||||
<params>
|
||||
<param name="CMDS_TO_RUN" value="test -n '$BUILD_ID' || exit 0; wget 'http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/contrib/rh-bkr/build-from-source.sh?id=automation' -O /tmp/nm-build-from-source.sh && BUILD_ID='$BUILD_ID' ARCH='$ARCH' sh /tmp/nm-build-from-source.sh"/>
|
||||
</params>
|
||||
</task>
|
||||
<task name="/qe/desktop/simpletestharness" role="STANDALONE">
|
||||
<params>
|
||||
<param name="GIT_URL" value="$GIT_TEST_REPO"/>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue