travis: Use manual matrix expansion to improve overall run time
authorTobias Brunner <tobias@strongswan.org>
Tue, 13 Nov 2018 17:31:21 +0000 (18:31 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 21 Nov 2018 13:37:56 +0000 (14:37 +0100)
The sonarcloud build runs a long time now (the win32/64 builds are also
a lot slower on xenial), which increases the overall time a build takes
because we can't run these before regular matrix jobs run.  So we do a
manual matrix expansion to control the order of jobs (slower first).
This also removes the TEST=default build with GCC as that's basically
what TEST=dist does (except for forcing the printf implementation)

.travis.yml

index 66cdfa3..98804f2 100644 (file)
@@ -6,9 +6,7 @@ dist: xenial
 # don't build tags separately
 if: tag IS blank
 
-compiler:
-  - gcc
-  - clang
+compiler: gcc
 
 cache: ccache
 
@@ -36,22 +34,6 @@ env:
     - TESTS_REDUCED_KEYLENGTHS=yes
     - LEAK_DETECTIVE=no
     - MONOLITHIC=no
-  matrix:
-    - TEST=all
-    - TEST=all MONOLITHIC=yes
-    - TEST=all LEAK_DETECTIVE=yes
-    - TEST=default
-    - TEST=default MONOLITHIC=yes
-    - TEST=default LEAK_DETECTIVE=yes
-    - TEST=botan
-    - TEST=botan LEAK_DETECTIVE=yes
-    - TEST=openssl
-    - TEST=openssl LEAK_DETECTIVE=yes
-    - TEST=gcrypt
-    - TEST=gcrypt LEAK_DETECTIVE=yes
-    # we can't test Vstr as negative int args are not properly passed to CBs
-    - TEST=printf-builtin
-    - TEST=printf-builtin LEAK_DETECTIVE=yes
 
 matrix:
   include:
@@ -65,10 +47,53 @@ matrix:
     - env: TEST=osx
       compiler: clang
       os: osx
+    - env: TEST=all
+    - env: TEST=all
+      compiler: clang
+    - env: TEST=all MONOLITHIC=yes
+    - env: TEST=all MONOLITHIC=yes
+      compiler: clang
+    - env: TEST=all LEAK_DETECTIVE=yes
+    - env: TEST=all LEAK_DETECTIVE=yes
+      compiler: clang
     - env: TEST=coverage
     - env: TEST=fuzzing MONOLITHIC=yes
       compiler: clang
-    - env: TEST=dist
-    - env: TEST=apidoc
     - env: TEST=win64 MONOLITHIC=yes
     - env: TEST=win32 MONOLITHIC=yes
+    - env: TEST=dist
+    # "default" with GCC is already tested with "dist" above
+    - env: TEST=default
+      compiler: clang
+    - env: TEST=default MONOLITHIC=yes
+    - env: TEST=default MONOLITHIC=yes
+      compiler: clang
+    - env: TEST=default LEAK_DETECTIVE=yes
+    - env: TEST=default LEAK_DETECTIVE=yes
+      compiler: clang
+    # we can't test Vstr as negative int args are not properly passed to CBs
+    - env: TEST=printf-builtin
+    - env: TEST=printf-builtin
+      compiler: clang
+    - env: TEST=printf-builtin LEAK_DETECTIVE=yes
+    - env: TEST=printf-builtin LEAK_DETECTIVE=yes
+      compiler: clang
+    - env: TEST=botan
+    - env: TEST=botan
+      compiler: clang
+    - env: TEST=botan LEAK_DETECTIVE=yes
+    - env: TEST=botan LEAK_DETECTIVE=yes
+      compiler: clang
+    - env: TEST=openssl
+    - env: TEST=openssl
+      compiler: clang
+    - env: TEST=openssl LEAK_DETECTIVE=yes
+    - env: TEST=openssl LEAK_DETECTIVE=yes
+      compiler: clang
+    - env: TEST=gcrypt
+    - env: TEST=gcrypt
+      compiler: clang
+    - env: TEST=gcrypt LEAK_DETECTIVE=yes
+    - env: TEST=gcrypt LEAK_DETECTIVE=yes
+      compiler: clang
+    - env: TEST=apidoc