ci: Move everything to a separate directory

We're going to have a few more CI-related files in a second, and
it makes sense to have a separate directory for them rather than
littering the root directory.

$(CI_SCRATCHDIR) can now also be created inside the CI directory,
and as a bonus the make rune necessary to start CI builds without
running configure first becomes shorter.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2019-08-15 14:06:14 +02:00
parent 75f5affde7
commit ffad19f94c
4 changed files with 15 additions and 16 deletions

2
.gitignore vendored
View File

@ -44,7 +44,7 @@
/autom4te.cache
/build-aux/*
/build/
/ci-tree/
/ci/scratch/
/confdefs.h
/config.cache
/config.guess

View File

@ -22,28 +22,28 @@ matrix:
- IMAGE="ubuntu-18"
- MAKE_ARGS="syntax-check distcheck"
script:
- make -f Makefile.ci ci-build@$IMAGE CI_MAKE_ARGS="$MAKE_ARGS"
- make -C ci/ ci-build@$IMAGE CI_MAKE_ARGS="$MAKE_ARGS"
- services:
- docker
env:
- IMAGE="centos-7"
- MAKE_ARGS="syntax-check distcheck"
script:
- make -f Makefile.ci ci-build@$IMAGE CI_MAKE_ARGS="$MAKE_ARGS"
- make -C ci/ ci-build@$IMAGE CI_MAKE_ARGS="$MAKE_ARGS"
- services:
- docker
env:
- IMAGE="fedora-30"
- MINGW="mingw32"
script:
- make -f Makefile.ci ci-build@$IMAGE CI_CONFIGURE="$MINGW-configure"
- make -C ci/ ci-build@$IMAGE CI_CONFIGURE="$MINGW-configure"
- services:
- docker
env:
- IMAGE="fedora-30"
- MINGW="mingw64"
script:
- make -f Makefile.ci ci-build@$IMAGE CI_CONFIGURE="$MINGW-configure"
- make -C ci/ ci-build@$IMAGE CI_CONFIGURE="$MINGW-configure"
- compiler: clang
language: c
os: osx

View File

@ -35,7 +35,6 @@ EXTRA_DIST = \
libvirt-qemu.pc.in \
libvirt-lxc.pc.in \
libvirt-admin.pc.in \
Makefile.ci \
Makefile.nonreentrant \
autogen.sh \
cfg.mk \
@ -51,6 +50,7 @@ EXTRA_DIST = \
build-aux/prohibit-duplicate-header.pl \
build-aux/useless-if-before-free \
build-aux/vc-list-files \
ci/Makefile \
$(NULL)
pkgconfigdir = $(libdir)/pkgconfig
@ -123,4 +123,4 @@ gen-AUTHORS:
fi
ci-%:
$(MAKE) -f Makefile.ci $@
$(MAKE) -C ci/ $@

View File

@ -1,16 +1,15 @@
# -*- makefile -*-
# vim: filetype=make
# Figure out name and path to this file. This isn't
# portable but we only care for modern GNU make
CI_MAKEFILE = $(abspath $(firstword $(MAKEFILE_LIST)))
# The root directory of the libvirt.git checkout
CI_GIT_ROOT = $(shell git rev-parse --show-toplevel)
# The root directory for all CI-related contents
CI_ROOTDIR = $(CI_GIT_ROOT)/ci
# The directory holding content on the host that we will
# expose to the container.
CI_SCRATCHDIR = $(shell pwd)/ci-tree
# The root directory of the libvirt.git checkout
CI_GIT_ROOT = $(shell git rev-parse --show-toplevel)
CI_SCRATCHDIR = $(CI_ROOTDIR)/scratch
# The directory holding the clone of the git repo that
# we will expose to the container
@ -182,7 +181,7 @@ ci-prepare-tree: ci-check-engine
cp /etc/group $(CI_SCRATCHDIR); \
echo "Cloning $(CI_GIT_ROOT) to $(CI_HOST_SRCDIR)"; \
git clone $(CI_GIT_ARGS) $(CI_GIT_ROOT) $(CI_HOST_SRCDIR) || exit 1; \
for mod in $$(git submodule | awk '{ print $$2 }') ; \
for mod in $$(git submodule | awk '{ print $$2 }' | sed -E 's,^../,,g') ; \
do \
test -f $(CI_GIT_ROOT)/$$mod/.git || continue ; \
echo "Cloning $(CI_GIT_ROOT)/$$mod to $(CI_HOST_SRCDIR)/$$mod"; \
@ -225,7 +224,7 @@ ci-build@%: ci-prepare-tree
@test "$(CI_CLEAN)" = "1" && rm -rf $(CI_SCRATCHDIR) || :
ci-check@%:
$(MAKE) -f $(CI_MAKEFILE) ci-build@$* CI_MAKE_ARGS="check"
$(MAKE) -C $(CI_ROOTDIR) ci-build@$* CI_MAKE_ARGS="check"
ci-shell@%: ci-prepare-tree
$(CI_ENGINE) run $(CI_ENGINE_ARGS) $(CI_IMAGE_PREFIX)$*$(CI_IMAGE_TAG) /bin/bash