[libvirt] [PATCH 03/10] ci: Move everything to a separate directory

Andrea Bolognani abologna at redhat.com
Fri Aug 16 09:49:47 UTC 2019


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 at redhat.com>
---
 .gitignore                 |  2 +-
 .travis.yml                |  8 ++++----
 Makefile.am                |  4 ++--
 Makefile.ci => ci/Makefile | 17 ++++++++---------
 4 files changed, 15 insertions(+), 16 deletions(-)
 rename Makefile.ci => ci/Makefile (96%)

diff --git a/.gitignore b/.gitignore
index dd5d35c762..82495e8692 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,7 +44,7 @@
 /autom4te.cache
 /build-aux/*
 /build/
-/ci-tree/
+/ci/scratch/
 /confdefs.h
 /config.cache
 /config.guess
diff --git a/.travis.yml b/.travis.yml
index b510c81083..db573fd496 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -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-rawhide"
         - 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-rawhide"
         - 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
diff --git a/Makefile.am b/Makefile.am
index 27c49280c4..b743b4b08b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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/ $@
diff --git a/Makefile.ci b/ci/Makefile
similarity index 96%
rename from Makefile.ci
rename to ci/Makefile
index 86e936aef8..350eb636cd 100644
--- a/Makefile.ci
+++ b/ci/Makefile
@@ -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
@@ -178,7 +177,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"; \
@@ -221,7 +220,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
-- 
2.21.0




More information about the libvir-list mailing list