[3/4] ci: use an explicit list of Travis jobs

Message ID 20200219194131.29417-4-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series Reorganise Travis jobs |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues

Commit Message

David Marchand Feb. 19, 2020, 7:41 p.m. UTC
  Maintaining the .travis.yml requires some knowledge of how Travis
computes the jobs list (combination of os: arch: compiler: etc...).
Let's switch to an explicit list to find all jobs at a glance.

To enhance readability, jobs have been sorted per arch/compiler with
comments to isolate blocks.

Setting required_packages for aarch64 native jobs is unnecessary,
the global addons: values are the same.

This commit does not change the jobs list (21 jobs in total).

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 .travis.yml | 102 ++++++++++++++++++++++++++--------------------------
 1 file changed, 52 insertions(+), 50 deletions(-)
  

Comments

Thomas Monjalon Feb. 20, 2020, 11:05 a.m. UTC | #1
19/02/2020 20:41, David Marchand:
> Maintaining the .travis.yml requires some knowledge of how Travis
> computes the jobs list (combination of os: arch: compiler: etc...).
> Let's switch to an explicit list to find all jobs at a glance.
> 
> To enhance readability, jobs have been sorted per arch/compiler with
> comments to isolate blocks.
> 
> Setting required_packages for aarch64 native jobs is unnecessary,
> the global addons: values are the same.
> 
> This commit does not change the jobs list (21 jobs in total).
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by: Thomas Monjalon <thomas@monjalon.net>

Thank you for thinking to poor humans like me with no Travis-fu skill.
  
Aaron Conole Feb. 20, 2020, 2:35 p.m. UTC | #2
David Marchand <david.marchand@redhat.com> writes:

> Maintaining the .travis.yml requires some knowledge of how Travis
> computes the jobs list (combination of os: arch: compiler: etc...).
> Let's switch to an explicit list to find all jobs at a glance.
>
> To enhance readability, jobs have been sorted per arch/compiler with
> comments to isolate blocks.
>
> Setting required_packages for aarch64 native jobs is unnecessary,
> the global addons: values are the same.
>
> This commit does not change the jobs list (21 jobs in total).
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

Acked-by: Aaron Conole <aconole@redhat.com>
  

Patch

diff --git a/.travis.yml b/.travis.yml
index 7c1b2ff1b..c174d5f30 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,14 @@ 
+# default values for all jobs
 language: c
 cache:
   ccache: true
   directories:
     - libabigail
     - reference
-compiler:
-  - gcc
-  - clang
 
 dist: bionic
 
-os:
-  - linux
+os: linux
 
 addons:
   apt:
@@ -38,98 +35,105 @@  _doc_packages: &doc_packages
   - [doxygen, graphviz, python3-sphinx]
 
 before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
-
-env:
-  - DEF_LIB="static"
-  - DEF_LIB="shared"
-  - DEF_LIB="shared" RUN_TESTS=1
+script: ./.ci/${TRAVIS_OS_NAME}-build.sh
 
 jobs:
   include:
-  - env: DEF_LIB="static" BUILD_32BIT=1
+  # x86_64 gcc jobs
+  - env: DEF_LIB="static"
+    arch: amd64
     compiler: gcc
-    addons:
-      apt:
-        packages:
-          - *build_32b_packages
-  - env: DEF_LIB="static" AARCH64=1
+  - env: DEF_LIB="shared"
+    arch: amd64
     compiler: gcc
-    addons:
-      apt:
-        packages:
-          - *aarch64_packages
-  - env: DEF_LIB="shared" AARCH64=1
+  - env: DEF_LIB="shared" RUN_TESTS=1
+    arch: amd64
     compiler: gcc
-    addons:
-      apt:
-        packages:
-          - *aarch64_packages
   - env: DEF_LIB="static" EXTRA_PACKAGES=1
+    arch: amd64
     compiler: gcc
     addons:
       apt:
         packages:
           - *extra_packages
   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
+    arch: amd64
     compiler: gcc
     addons:
       apt:
         packages:
           - *extra_packages
           - *doc_packages
-  - env: DEF_LIB="static" EXTRA_PACKAGES=1
+  - env: DEF_LIB="shared" EXTRA_PACKAGES=1 ABI_CHECKS=1
+    arch: amd64
     compiler: gcc
     addons:
       apt:
         packages:
           - *extra_packages
+          - *libabigail_build_packages
+  # x86_64 clang jobs
+  - env: DEF_LIB="static"
+    arch: amd64
+    compiler: clang
+  - env: DEF_LIB="shared"
+    arch: amd64
+    compiler: clang
+  - env: DEF_LIB="shared" RUN_TESTS=1
+    arch: amd64
+    compiler: clang
   - env: DEF_LIB="static" EXTRA_PACKAGES=1
+    arch: amd64
     compiler: clang
     addons:
       apt:
         packages:
           - *extra_packages
   - env: DEF_LIB="shared" EXTRA_PACKAGES=1
+    arch: amd64
     compiler: clang
     addons:
       apt:
         packages:
           - *extra_packages
   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
+    arch: amd64
     compiler: clang
     addons:
       apt:
         packages:
           - *extra_packages
           - *doc_packages
-  - env: DEF_LIB="static"
-    arch: arm64
+  # x86_64 cross-compiling 32-bits jobs
+  - env: DEF_LIB="static" BUILD_32BIT=1
+    arch: amd64
     compiler: gcc
     addons:
       apt:
         packages:
-          - *required_packages
-  - env: DEF_LIB="shared"
-    arch: arm64
+          - *build_32b_packages
+  # x86_64 cross-compiling aarch64 jobs
+  - env: DEF_LIB="static" AARCH64=1
+    arch: amd64
     compiler: gcc
     addons:
       apt:
         packages:
-          - *required_packages
-  - env: DEF_LIB="static"
-    arch: arm64
-    compiler: clang
+          - *aarch64_packages
+  - env: DEF_LIB="shared" AARCH64=1
+    arch: amd64
+    compiler: gcc
     addons:
       apt:
         packages:
-          - *required_packages
+          - *aarch64_packages
+  # aarch64 gcc jobs
+  - env: DEF_LIB="static"
+    arch: arm64
+    compiler: gcc
   - env: DEF_LIB="shared"
     arch: arm64
-    compiler: clang
-    addons:
-      apt:
-        packages:
-          - *required_packages
+    compiler: gcc
   - env: DEF_LIB="shared" BUILD_DOCS=1
     arch: arm64
     compiler: gcc
@@ -138,13 +142,6 @@  jobs:
         packages:
           - *required_packages
           - *doc_packages
-  - env: DEF_LIB="shared" EXTRA_PACKAGES=1 ABI_CHECKS=1
-    compiler: gcc
-    addons:
-      apt:
-        packages:
-          - *extra_packages
-          - *libabigail_build_packages
   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 ABI_CHECKS=1
     arch: arm64
     compiler: gcc
@@ -153,5 +150,10 @@  jobs:
         packages:
           - *extra_packages
           - *libabigail_build_packages
-
-script: ./.ci/${TRAVIS_OS_NAME}-build.sh
+  # aarch64 clang jobs
+  - env: DEF_LIB="static"
+    arch: arm64
+    compiler: clang
+  - env: DEF_LIB="shared"
+    arch: arm64
+    compiler: clang