From 370c6f4d2a04b818adda89f2342f7c42b3782201 Mon Sep 17 00:00:00 2001
From: David Robillard <d@drobilla.net>
Date: Sun, 14 Apr 2019 15:50:41 +0200
Subject: Improve CI configuration

---
 .gitlab-ci.yml | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 150 insertions(+), 14 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d877353..61507b5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,31 +1,167 @@
-lin_dbg:
-  script:
-    - python ./waf -dsT --no-coverage configure build test
+stages:
+  - build
+  - test
+
+.build_template: &build_definition
+  stage: build
+  artifacts:
+    paths:
+      - build/
+      - .lock-waf*
+
+.test_template: &test_definition
+  stage: test
+  artifacts:
+    paths:
+      - build/coverage
+
+
+arm_dbg:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -dsT
+  variables:
+    CC: "arm-linux-gnueabihf-gcc"
+    CXX: "arm-linux-gnueabihf-g++"
+
+test:arm_dbg:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test --wrapper=qemu-arm
+  dependencies:
+    - arm_dbg
+
+
+arm_rel:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -sT
+  variables:
+    CC: "arm-linux-gnueabihf-gcc"
+    CXX: "arm-linux-gnueabihf-g++"
+
+test:arm_rel:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test --wrapper=qemu-arm
+  dependencies:
+    - arm_rel
+
+
+aarch64_dbg:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -dsT
+  variables:
+    CC: "aarch64-linux-gnu-gcc"
+    CXX: "aarch64-linux-gnu-g++"
+
+test:aarch64_dbg:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test --wrapper=qemu-aarch64
+  dependencies:
+    - aarch64_dbg
+
+
+aarch64_rel:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -sT
+  variables:
+    CC: "aarch64-linux-gnu-gcc"
+    CXX: "aarch64-linux-gnu-g++"
+
+test:aarch64_rel:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test --wrapper=qemu-aarch64
+  dependencies:
+    - aarch64_rel
+
+
+amd64_dbg:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -dsT
+
+test:amd64_dbg:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test
+  dependencies:
+    - amd64_dbg
+
+
+amd64_rel:
+  <<: *build_definition
+  image: drobilla/debian-stretch
+  script: python ./waf configure build -sT
+
+test:amd64_rel:
+  <<: *test_definition
+  image: drobilla/debian-stretch
+  script: python ./waf test
+  dependencies:
+    - amd64_rel
 
-lin_rel:
-  script:
-    - python ./waf -sT --no-coverage configure build test
 
 mac_dbg:
-  script:
-    - python ./waf -dsT --no-coverage configure build test
+  <<: *build_definition
+  script: python ./waf configure build -dsT --no-coverage
+  tags:
+    - macos
+
+test:mac_dbg:
+  <<: *test_definition
+  script: python ./waf test
+  dependencies:
+    - mac_dbg
   tags:
     - macos
 
+
 mac_rel:
-  script:
-    - python ./waf -sT --no-coverage configure build test
+  <<: *build_definition
+  script: python ./waf configure build -sT --no-coverage
+  tags:
+    - macos
+
+test:mac_rel:
+  <<: *test_definition
+  script: python ./waf test
+  dependencies:
+    - mac_rel
   tags:
     - macos
 
+
 win_dbg:
+  <<: *build_definition
   script:
-    - python ./waf -dsT --no-coverage configure build test
+    - python ./waf configure build -dT --no-coverage
   tags:
     - windows
 
+test:win_dbg:
+  <<: *test_definition
+  script: python ./waf test
+  dependencies:
+    - win_dbg
+  tags:
+    - windows
+
+
 win_rel:
-  script:
-    - python ./waf -sT --no-coverage configure build test
+  <<: *build_definition
+  script: python ./waf configure build -T --no-coverage
   tags:
-    - windows
\ No newline at end of file
+    - windows
+
+test:win_rel:
+  <<: *test_definition
+  script: python ./waf test
+  dependencies:
+    - win_rel
+  tags:
+    - windows
-- 
cgit v1.2.1