mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
ci: Switch to meson build system
Add meson required bits to the ci logic in the repo to be able to run a meson build in a container. This patch also drops several environment variables we don't need with meson anymore. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
parent
6d69afe451
commit
1a0af38ae7
38
ci/Makefile
38
ci/Makefile
@ -20,27 +20,6 @@ CI_HOST_SRCDIR = $(CI_SCRATCHDIR)/src
|
||||
# the $(CI_HOST_SRCDIR) directory from the host
|
||||
CI_CONT_SRCDIR = $(CI_USER_HOME)/libvirt
|
||||
|
||||
# Relative directory to perform the build in. This
|
||||
# defaults to using a separate build dir, but can be
|
||||
# set to empty string for an in-source tree build.
|
||||
CI_VPATH = build
|
||||
|
||||
# The directory holding the build output inside the
|
||||
# container.
|
||||
CI_CONT_BUILDDIR = $(CI_CONT_SRCDIR)/$(CI_VPATH)
|
||||
|
||||
# Can be overridden with mingw{32,64}-configure if desired
|
||||
CI_CONFIGURE = $(CI_CONT_SRCDIR)/configure
|
||||
|
||||
# Default to using all possible CPUs
|
||||
CI_SMP = $(shell getconf _NPROCESSORS_ONLN)
|
||||
|
||||
# Any extra arguments to pass to make
|
||||
CI_MAKE_ARGS =
|
||||
|
||||
# Any extra arguments to pass to configure
|
||||
CI_CONFIGURE_ARGS =
|
||||
|
||||
# Script containing environment preparation steps
|
||||
CI_PREPARE_SCRIPT = $(CI_ROOTDIR)/prepare.sh
|
||||
|
||||
@ -220,13 +199,10 @@ ci-run-command@%: ci-prepare-tree
|
||||
--login \
|
||||
--user="#$(CI_UID)" \
|
||||
--group="#$(CI_GID)" \
|
||||
CONFIGURE_OPTS="$$CONFIGURE_OPTS" \
|
||||
MESON_OPTS="$$MESON_OPTS" \
|
||||
CI_CONT_SRCDIR="$(CI_CONT_SRCDIR)" \
|
||||
CI_CONT_BUILDDIR="$(CI_CONT_BUILDDIR)" \
|
||||
CI_SMP="$(CI_SMP)" \
|
||||
CI_CONFIGURE="$(CI_CONFIGURE)" \
|
||||
CI_CONFIGURE_ARGS="$(CI_CONFIGURE_ARGS)" \
|
||||
CI_MAKE_ARGS="$(CI_MAKE_ARGS)" \
|
||||
CI_MESON_ARGS="$(CI_MESON_ARGS)" \
|
||||
CI_NINJA_ARGS="$(CI_NINJA_ARGS)" \
|
||||
$(CI_COMMAND) || exit 1'
|
||||
@test "$(CI_CLEAN)" = "1" && rm -rf $(CI_SCRATCHDIR) || :
|
||||
|
||||
@ -236,8 +212,8 @@ ci-shell@%:
|
||||
ci-build@%:
|
||||
$(MAKE) -C $(CI_ROOTDIR) ci-run-command@$* CI_COMMAND="$(CI_USER_HOME)/build"
|
||||
|
||||
ci-check@%:
|
||||
$(MAKE) -C $(CI_ROOTDIR) ci-build@$* CI_MAKE_ARGS="check"
|
||||
ci-test@%:
|
||||
$(MAKE) -C $(CI_ROOTDIR) ci-build@$* CI_NINJA_ARGS=test
|
||||
|
||||
ci-list-images:
|
||||
@echo
|
||||
@ -266,6 +242,6 @@ ci-help:
|
||||
@echo " CI_CLEAN=0 - do not delete '$(CI_SCRATCHDIR)' after completion"
|
||||
@echo " CI_REUSE=1 - re-use existing '$(CI_SCRATCHDIR)' content"
|
||||
@echo " CI_ENGINE=auto - container engine to use (podman, docker)"
|
||||
@echo " CI_CONFIGURE_ARGS= - extra arguments passed to configure"
|
||||
@echo " CI_MAKE_ARGS= - extra arguments passed to make, e.g. space delimited list of targets"
|
||||
@echo " CI_MESON_ARGS= - extra arguments passed to meson"
|
||||
@echo " CI_NINJA_ARGS= - extra arguments passed to ninja"
|
||||
@echo
|
||||
|
29
ci/build.sh
29
ci/build.sh
@ -7,32 +7,15 @@
|
||||
#
|
||||
# to make.
|
||||
|
||||
mkdir -p "$CI_CONT_BUILDDIR" || exit 1
|
||||
cd "$CI_CONT_BUILDDIR"
|
||||
cd "$CI_CONT_SRCDIR"
|
||||
|
||||
export VIR_TEST_DEBUG=1
|
||||
NOCONFIGURE=1 "$CI_CONT_SRCDIR/autogen.sh" || exit 1
|
||||
|
||||
# $CONFIGURE_OPTS is a env that can optionally be set in the container,
|
||||
# $MESON_OPTS is an env that can optionally be set in the container,
|
||||
# populated at build time from the Dockerfile. A typical use case would
|
||||
# be to pass --host/--target args to trigger cross-compilation
|
||||
#
|
||||
# This can be augmented by make local args in $CI_CONFIGURE_ARGS
|
||||
"$CI_CONFIGURE" $CONFIGURE_OPTS $CI_CONFIGURE_ARGS
|
||||
if test $? != 0; then
|
||||
test -f config.log && cat config.log
|
||||
exit 1
|
||||
fi
|
||||
find -name test-suite.log -delete
|
||||
# be to pass options to trigger cross-compilation
|
||||
|
||||
make -j"$CI_SMP" $CI_MAKE_ARGS
|
||||
meson build --werror $MESON_OPTS $CI_MESON_ARGS || \
|
||||
(cat build/meson-logs/meson-log.txt && exit 1)
|
||||
|
||||
if test $? != 0; then \
|
||||
LOGS=$(find -name test-suite.log)
|
||||
if test "$LOGS"; then
|
||||
echo "=== LOG FILE(S) START ==="
|
||||
cat $LOGS
|
||||
echo "=== LOG FILE(S) END ==="
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
ninja -C build $CI_NINJA_ARGS
|
||||
|
Loading…
x
Reference in New Issue
Block a user