Travis: Simplify configuration using Build Stages and APT addon
authorJakub Jirutka <jakub@jirutka.cz>
Fri, 28 Jul 2017 00:01:44 +0000 (02:01 +0200)
committerJakub Jirutka <jakub@jirutka.cz>
Tue, 1 Aug 2017 19:52:03 +0000 (21:52 +0200)
Using APT addon has nice side-effect - you don't need sudo anymore, so
it can run on Travis containers-based infrastructure that is much faster
than their VMs infrastructure (used when sudo is needed).

You've been still running on Ubuntu Presty builders, but new default is
Trusty. Thus I've explicitly set `dist: presty` to let it stay on
Presty, to not change build environment by this commit.

.travis.yml

index 63b4697..878a547 100644 (file)
@@ -1,38 +1,72 @@
+# XXX: Precise is already deprecated, new default is Trusty.
+# https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
+dist: precise
+sudo: false
 language: c
+compiler: gcc
 
-notifications:
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
-    on_success: change  # options: [always|never|change] default: always
-    on_failure: always  # options: [always|never|change] default: always
-    on_start: never     # options: [always|never|change] default: always
+jobs:
+  include:
+    - &test-ubuntu
+      stage: test
+      addons:
+        apt:
+          packages:
+            - gfortran
+      script:
+        - set -e
+        - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32"
+        - make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
+        - make -C test $COMMON_FLAGS $BTYPE
+        - make -C ctest $COMMON_FLAGS $BTYPE
+        - make -C utest $COMMON_FLAGS $BTYPE
+      env:
+        - TARGET_BOX=LINUX64
+        - BTYPE="BINARY=64"
 
-compiler:
-  - gcc
+    - <<: *test-ubuntu
+      env:
+        - TARGET_BOX=LINUX64
+        - BTYPE="BINARY=64 USE_OPENMP=1"
 
-env:
-  - TARGET_BOX=LINUX64 BTYPE="BINARY=64"
-  - TARGET_BOX=LINUX64 BTYPE="BINARY=64 USE_OPENMP=1"
-  - TARGET_BOX=LINUX64 BTYPE="BINARY=64 INTERFACE64=1"
-  - TARGET_BOX=LINUX32 BTYPE="BINARY=32"
-  - TARGET_BOX=WIN64 BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
+    - <<: *test-ubuntu
+      env:
+        - TARGET_BOX=LINUX64
+        - BTYPE="BINARY=64 INTERFACE64=1"
 
-before_install:
- - sudo apt-get update -qq
- - sudo apt-get install -qq gfortran
- - if [[ "$TARGET_BOX" == "WIN64" ]]; then sudo apt-get install -qq binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 gfortran-mingw-w64-x86-64; fi
- - if [[ "$TARGET_BOX" == "LINUX32" ]]; then sudo apt-get install -qq  gcc-multilib gfortran-multilib; fi
+    - <<: *test-ubuntu
+      addons:
+        apt:
+          packages:
+            - gcc-multilib
+            - gfortran-multilib
+      env:
+        - TARGET_BOX=LINUX32
+        - BTYPE="BINARY=32"
 
-script: 
- - set -e
- - make QUIET_MAKE=1 DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32 $BTYPE
- - if [ "$TARGET_BOX" == "LINUX32" ] || [ "$TARGET_BOX" == "LINUX64" ]; then make -C test DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32 $BTYPE; fi
- - if [ "$TARGET_BOX" == "LINUX32" ] || [ "$TARGET_BOX" == "LINUX64" ]; then make -C ctest DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32 $BTYPE; fi
- - if [ "$TARGET_BOX" == "LINUX32" ] || [ "$TARGET_BOX" == "LINUX64" ]; then make -C utest DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32 $BTYPE; fi
+    - stage: test
+      addons:
+        apt:
+          packages:
+            - binutils-mingw-w64-x86-64
+            - gcc-mingw-w64-x86-64
+            - gfortran-mingw-w64-x86-64
+      script:
+        - make QUIET_MAKE=1 DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32 $BTYPE
+      env:
+        - TARGET_BOX=WIN64
+        - BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
 
 # whitelist
 branches:
   only:
     - master
-    - develop
\ No newline at end of file
+    - develop
+
+notifications:
+  webhooks:
+    urls:
+      - https://webhooks.gitter.im/e/8a6e4470a0cebd090344
+    on_success: change  # options: [always|never|change] default: always
+    on_failure: always  # options: [always|never|change] default: always
+    on_start: never     # options: [always|never|change] default: always