First add the meson required bits to be able to run the build. NOTE: inspired by our gitlab-ci.yml Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> --- ci/Makefile | 10 ++++++++-- ci/build.sh | 20 +++++--------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/ci/Makefile b/ci/Makefile index c7c8eb9a45..f76600240f 100644 --- a/ci/Makefile +++ b/ci/Makefile @@ -35,6 +35,9 @@ CI_CONFIGURE = $(CI_CONT_SRCDIR)/configure # Default to using all possible CPUs CI_SMP = $(shell getconf _NPROCESSORS_ONLN) +# Any extra arguments to pass to ninja +CI_NINJA_ARGS = + # Any extra arguments to pass to make CI_MAKE_ARGS = @@ -227,6 +230,8 @@ ci-run-command@%: ci-prepare-tree CI_CONFIGURE="$(CI_CONFIGURE)" \ CI_CONFIGURE_ARGS="$(CI_CONFIGURE_ARGS)" \ CI_MAKE_ARGS="$(CI_MAKE_ARGS)" \ + MESON_OPTS="$$MESON_OPTS" \ + CI_NINJA_ARGS="$(CI_NINJA_ARGS)" \ $(CI_COMMAND) || exit 1' @test "$(CI_CLEAN)" = "1" && rm -rf $(CI_SCRATCHDIR) || : @@ -236,8 +241,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 @@ -268,4 +273,5 @@ ci-help: @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_NINJA_ARGS= - extra arguments passed to ninja" @echo diff --git a/ci/build.sh b/ci/build.sh index 2da84c080a..21b053a4cd 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -7,26 +7,16 @@ # # to make. -mkdir -p "$CI_CONT_BUILDDIR" || exit 1 -cd "$CI_CONT_BUILDDIR" +mkdir -p "$CI_CONT_SRCDIR" || exit 1 +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, -# 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 +meson build --werror $MESON_OPTS || (cat build/meson-logs/meson-log.txt && exit 1) +ninja -C build $CI_NINJA_ARGS + find -name test-suite.log -delete -make -j"$CI_SMP" $CI_MAKE_ARGS - if test $? != 0; then \ LOGS=$(find -name test-suite.log) if test "$LOGS"; then -- 2.26.2