Use the "extends" keyword introduced in 11.3 to reduce repetition in
jobs. More importantly, this helps us better organise the properties
of jobs.

Signed-off-by: Wei Liu <wei.l...@citrix.com>
---
 .gitlab-ci.yml | 281 +++++++++++++++++++++++++++------------------------------
 1 file changed, 134 insertions(+), 147 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a3b393fade..1c7b3d3d5b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,298 +28,285 @@ stages:
     CXX: clang++
     clang: y
 
-centos-7-2-gcc:
+.x86-64-build-tmpl:
   <<: *build
   variables:
-    <<: *gcc
-    CONTAINER: centos:7.2
-    debug: n
     XEN_TARGET_ARCH: x86_64
 
-centos-7-2-gcc-debug:
+.x86-64-build:
+  extends: .x86-64-build-tmpl
+  variables:
+    debug: n
+
+.x86-64-build-debug:
+  extends: .x86-64-build-tmpl
+  variables:
+    debug: y
+
+.x86-32-build-tmpl:
   <<: *build
   variables:
-    <<: *gcc
-    CONTAINER: centos:7.2
+    XEN_TARGET_ARCH: x86_32
+
+.x86-32-build:
+  extends: .x86-32-build-tmpl
+  variables:
+    debug: n
+
+.x86-32-build-debug:
+  extends: .x86-32-build-tmpl
+  variables:
     debug: y
-    XEN_TARGET_ARCH: x86_64
 
-centos-7-gcc:
+.gcc-x86-64-build:
+  extends: .x86-64-build
+  variables:
+    <<: *gcc
+
+.gcc-x86-64-build-debug:
+  extends: .x86-64-build-debug
+  variables:
+    <<: *gcc
+
+.gcc-x86-32-build:
+  extends: .x86-32-build
+  variables:
+    <<: *gcc
+
+.gcc-x86-32-build-debug:
+  extends: .x86-32-build-debug
+  variables:
+    <<: *gcc
+
+.clang-x86-64-build:
+  extends: .x86-64-build
+  variables:
+    <<: *clang
+
+.clang-x86-64-build-debug:
+  extends: .x86-64-build-debug
+  variables:
+    <<: *clang
+
+.clang-x86-32-build:
+  extends: .x86-32-build
+  variables:
+    <<: *clang
+
+.clang-x86-32-build-debug:
+  extends: .x86-32-build-debug
+  variables:
+    <<: *clang
+
+.arm64-build-tmpl:
   <<: *build
   variables:
+    XEN_TARGET_ARCH: arm64
+  tags:
+    - arm64
+
+.arm64-build:
+  extends: .arm64-build-tmpl
+  variables:
+    debug: n
+
+.arm64-build-debug:
+  extends: .arm64-build-tmpl
+  variables:
+    debug: y
+
+.gcc-arm64-build:
+  extends: .arm64-build
+  variables:
     <<: *gcc
+
+.gcc-arm64-build-debug:
+  extends: .arm64-build-debug
+  variables:
+    <<: *gcc
+
+# Jobs below this line
+
+centos-7-2-gcc:
+  extends: .gcc-x86-64-build
+  variables:
+    CONTAINER: centos:7.2
+
+centos-7-2-gcc-debug:
+  extends: .gcc-x86-64-build-debug
+  variables:
+    CONTAINER: centos:7.2
+
+centos-7-gcc:
+  extends: .gcc-x86-64-build
+  variables:
     CONTAINER: centos:7
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 centos-7-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: centos:7
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-jessie-clang:
-  <<: *build
+  extends: .clang-x86-64-build
   variables:
-    <<: *clang
     CONTAINER: debian:jessie
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-jessie-clang-debug:
-  <<: *build
+  extends: .clang-x86-64-build-debug
   variables:
-    <<: *clang
     CONTAINER: debian:jessie
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-jessie-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: debian:jessie
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-jessie-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:jessie
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-stretch-clang:
-  <<: *build
+  extends: .clang-x86-64-build
   variables:
-    <<: *clang
     CONTAINER: debian:stretch
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-stretch-clang-debug:
-  <<: *build
+  extends: .clang-x86-64-build-debug
   variables:
-    <<: *clang
     CONTAINER: debian:stretch
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-stretch-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: debian:stretch
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-stretch-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:stretch
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-stretch-32-clang:
-  <<: *build
+  extends: .clang-x86-32-build
   variables:
-    <<: *clang
     CONTAINER: debian:stretch-i386
-    debug: n
-    XEN_TARGET_ARCH: x86_32
 
 debian-stretch-32-clang-debug:
-  <<: *build
+  extends: .clang-x86-32-build-debug
   variables:
-    <<: *clang
     CONTAINER: debian:stretch-i386
-    debug: y
-    XEN_TARGET_ARCH: x86_32
 
 debian-stretch-32-gcc:
-  <<: *build
+  extends: .gcc-x86-32-build
   variables:
-    <<: *gcc
     CONTAINER: debian:stretch-i386
-    debug: n
-    XEN_TARGET_ARCH: x86_32
 
 debian-stretch-32-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:stretch-i386
-    debug: y
-    XEN_TARGET_ARCH: x86_32
 
 debian-unstable-clang:
-  <<: *build
+  extends: .clang-x86-64-build
   variables:
-    <<: *clang
     CONTAINER: debian:unstable
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-unstable-clang-debug:
-  <<: *build
+  extends: .clang-x86-64-build-debug
   variables:
-    <<: *clang
     CONTAINER: debian:unstable
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-unstable-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 debian-unstable-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 debian-unstable-32-clang:
-  <<: *build
+  extends: .clang-x86-32-build
   variables:
-    <<: *clang
     CONTAINER: debian:unstable-i386
-    debug: n
-    XEN_TARGET_ARCH: x86_32
 
 debian-unstable-32-clang-debug:
-  <<: *build
+  extends: .clang-x86-32-build-debug
   variables:
-    <<: *clang
     CONTAINER: debian:unstable-i386
-    debug: y
-    XEN_TARGET_ARCH: x86_32
 
 debian-unstable-32-gcc:
-  <<: *build
+  extends: .gcc-x86-32-build
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable-i386
-    debug: n
-    XEN_TARGET_ARCH: x86_32
 
 debian-unstable-32-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable-i386
-    debug: y
-    XEN_TARGET_ARCH: x86_32
 
 # Ubuntu Trusty's Clang is 3.4 while Xen requires 3.5
 
 ubuntu-trusty-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:trusty
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-trusty-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:trusty
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-xenial-clang:
-  <<: *build
+  extends: .clang-x86-64-build
   variables:
-    <<: *clang
     CONTAINER: ubuntu:xenial
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-xenial-clang-debug:
-  <<: *build
+  extends: .clang-x86-64-build-debug
   variables:
-    <<: *clang
     CONTAINER: ubuntu:xenial
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-xenial-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:xenial
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-xenial-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:xenial
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-bionic-clang:
-  <<: *build
+  extends: .clang-x86-64-build
   variables:
-    <<: *clang
     CONTAINER: ubuntu:bionic
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-bionic-clang-debug:
-  <<: *build
+  extends: .clang-x86-64-build-debug
   variables:
-    <<: *clang
     CONTAINER: ubuntu:bionic
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-bionic-gcc:
-  <<: *build
+  extends: .gcc-x86-64-build
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:bionic
-    debug: n
-    XEN_TARGET_ARCH: x86_64
 
 ubuntu-bionic-gcc-debug:
-  <<: *build
+  extends: .gcc-x86-64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: ubuntu:bionic
-    debug: y
-    XEN_TARGET_ARCH: x86_64
 
 # Arm builds
 
 debian-unstable-gcc-arm64:
-  <<: *build
+  extends: .gcc-arm64-build
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable-arm64v8
-    debug: n
-    XEN_TARGET_ARCH: arm64
-  tags:
-    - arm64
 
 debian-unstable-gcc-debug-arm64:
-  <<: *build
+  extends: .gcc-arm64-build-debug
   variables:
-    <<: *gcc
     CONTAINER: debian:unstable-arm64v8
-    debug: y
-    XEN_TARGET_ARCH: arm64
-  tags:
-    - arm64
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to