fwupd/contrib/ci/fedora.sh
Mario Limonciello cc8eb5ca8c trivial: Merge python steps from contrib/setup into helper script
This avoids having to hardcode profile targets in multiple places
and also fixes the confusing entry points into scripts both by
arguments and environment variables.

It also makes the setup script a lot more debuggable and scalable.

OS detection is a lot more robust, where it will try to use pip to
set up the distro python package, and if pip is missing try to install
it.

If OS detection fails now, a user can use --os on contrib/setup for
specifying it.
2021-09-17 10:59:35 -05:00

83 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -e
set -x
#get any missing deps from the container
./contrib/ci/fwupd_setup_helpers.py install-dependencies --yes -o fedora
#generate a tarball
git config tar.tar.xz.command "xz -c"
mkdir -p build && pushd build
rm -rf *
if [ "$QUBES" = "true" ]; then
QUBES_MACRO=(--define "qubes_packages 1")
fi
meson .. \
-Ddocs=none \
-Dman=true \
-Dtests=true \
-Dgusb:tests=false \
-Dplugin_dummy=true \
-Dplugin_flashrom=true \
-Dplugin_modem_manager=false \
-Dplugin_thunderbolt=true \
-Dplugin_uefi_capsule=true \
-Dplugin_dell=true \
-Dplugin_synaptics_mst=true $@
ninja-build dist
popd
VERSION=`meson introspect build --projectinfo | jq -r .version`
RPMVERSION=${VERSION//-/.}
mkdir -p $HOME/rpmbuild/SOURCES/
mv build/meson-dist/fwupd-$VERSION.tar.xz $HOME/rpmbuild/SOURCES/
#generate a spec file
sed "s,#VERSION#,$RPMVERSION,;
s,#BUILD#,1,;
s,#LONGDATE#,`date '+%a %b %d %Y'`,;
s,#ALPHATAG#,alpha,;
s,enable_dummy 0,enable_dummy 1,;
s,Source0.*,Source0:\tfwupd-$VERSION.tar.xz," \
build/contrib/fwupd.spec.in > build/fwupd.spec
if [ -n "$CI" ]; then
sed -i "s,enable_ci 0,enable_ci 1,;" build/fwupd.spec
fi
#build RPM packages
rpmbuild -ba "${QUBES_MACRO[@]}" build/fwupd.spec
#if invoked outside of CI
if [ ! -f /.dockerenv ]; then
echo "Not running in a container, please manually install packages"
exit 0
fi
#install RPM packages
dnf install -y $HOME/rpmbuild/RPMS/*/*.rpm
mkdir -p dist
cp $HOME/rpmbuild/RPMS/*/*.rpm dist
if [ "$CI" = "true" ]; then
sed "s,^DisabledPlugins=.*,DisabledPlugins=," -i /etc/fwupd/daemon.conf
# set up enough PolicyKit and D-Bus to run the daemon
mkdir -p /run/dbus
mkdir -p /var
ln -s /var/run /run
dbus-daemon --system --fork
/usr/lib/polkit-1/polkitd &
sleep 5
# run the daemon startup to check it can start
/usr/libexec/fwupd/fwupd --immediate-exit --verbose
# run the installed tests whilst the daemon debugging
/usr/libexec/fwupd/fwupd --verbose &
sleep 10
gnome-desktop-testing-runner fwupd
fi