aboutsummaryrefslogtreecommitdiffstats
path: root/src/scripts/ci
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2019-10-23 21:01:46 -0400
committerJack Lloyd <[email protected]>2019-10-23 22:08:29 -0400
commit8060f2ad6f104c86b4f6ba8a59834600fa1379b5 (patch)
tree42fb403585caf9017761907ab75a53913a0e9f0b /src/scripts/ci
parent7f084620e9c2c5ac82b4c71b23e098dd25a636db (diff)
Reorganize Travis matrix. Add aarch64 and ppc64le builds
Diffstat (limited to 'src/scripts/ci')
-rwxr-xr-xsrc/scripts/ci/setup_travis.sh6
-rw-r--r--src/scripts/ci/travis.yml211
2 files changed, 131 insertions, 86 deletions
diff --git a/src/scripts/ci/setup_travis.sh b/src/scripts/ci/setup_travis.sh
index 50ca2c630..e8fcf3bb5 100755
--- a/src/scripts/ci/setup_travis.sh
+++ b/src/scripts/ci/setup_travis.sh
@@ -11,7 +11,11 @@ set -ev
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
- if [ "$TARGET" = "valgrind" ]; then
+ if [ "$TARGET" = "shared" ] && [ "$TRAVIS_ARCH" = "aarch64" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install liblzma-dev libbz2-dev ccache
+
+ elif [ "$TARGET" = "valgrind" ]; then
sudo apt-get -qq update
sudo apt-get install valgrind
diff --git a/src/scripts/ci/travis.yml b/src/scripts/ci/travis.yml
index 341f2982f..015b1611a 100644
--- a/src/scripts/ci/travis.yml
+++ b/src/scripts/ci/travis.yml
@@ -1,109 +1,150 @@
language: cpp
-os:
- - osx
- - linux
-
dist: xenial
sudo: required
-compiler:
- - clang
- - gcc
-
env:
global:
- CCACHE_MAXSIZE=1G
- - ANDROID_NDK=android-ndk-r20
-
- matrix:
- - TARGET="shared"
- - TARGET="coverage"
- - TARGET="fuzzers"
- - TARGET="valgrind"
- - TARGET="cross-i386"
- - TARGET="cross-ppc32"
- - TARGET="cross-ppc64"
- - TARGET="cross-arm32"
- - TARGET="cross-arm64"
- - TARGET="cross-mips64"
- - TARGET="cross-win64"
- - TARGET="cross-android-arm32"
- - TARGET="cross-android-arm64"
- - TARGET="gcc4.8"
- - TARGET="static"
- - TARGET="mini-shared"
- - TARGET="bsi"
- - TARGET="nist"
- - TARGET="docs"
- - TARGET="lint"
-
-matrix:
- exclude:
- # Skip GCC on OS X entirely
- - os: osx
+
+jobs:
+ include:
+ - os: linux
+ name: Linux/GCC
compiler: gcc
+ env:
+ - TARGET="shared"
- # XCode 9.4 ICEs on 32-bit ARM builds
- - os: osx
- env: TARGET="cross-arm32"
-
- # Run static, docs, lint, bsi, nist, fuzzers, coverage, valgrind,
- # sanitizer, minimized and non-ARM cross builds only on Linux/gcc.
- # The sanitizer builds under Clang run the tests very slowly and
- # cause CI timeouts.
-
- - compiler: clang
- env: TARGET="static"
- - compiler: clang
- env: TARGET="bsi"
- - compiler: clang
- env: TARGET="nist"
- - compiler: clang
- env: TARGET="lint"
- - compiler: clang
- env: TARGET="docs"
- - compiler: clang
- env: TARGET="coverage"
-
- - compiler: clang
- env: TARGET="fuzzers"
- - compiler: clang
- env: TARGET="valgrind"
- - compiler: clang
- env: TARGET="mini-shared"
- - compiler: clang
- env: TARGET="cross-win64"
- - compiler: clang
- env: TARGET="cross-ppc32"
- - compiler: clang
- env: TARGET="cross-ppc64"
- - compiler: clang
- env: TARGET="cross-mips64"
- - compiler: clang
- env: TARGET="cross-i386"
- - compiler: clang
- env: TARGET="gcc4.8"
-
- # No ARM Clang compiler on Linux
- os: linux
+ name: Linux/Clang
compiler: clang
- env: TARGET="cross-arm32"
+ env:
+ - TARGET="shared"
+
- os: linux
+ name: Coverage
+ compiler: gcc
+ env:
+ - TARGET="coverage"
+
+ - os: linux
+ name: Fuzzers
+ compiler: gcc
+ env:
+ - TARGET="fuzzers"
+
+ - os: linux
+ name: Valgrind
+ compiler: gcc
+ env:
+ - TARGET="valgrind"
+
+ - os: linux
+ name: Linux arm64
+ arch: arm64
+ compiler: gcc
+ env:
+ - TARGET="shared"
+
+ - os: linux
+ dist: bionic
+ name: Linux ppc64le
+ arch: ppc64le
+ compiler: gcc
+ env:
+ - TARGET="shared"
+
+ - os: linux
+ name: Linux i386 cross
+ compiler: gcc
+ env:
+ - TARGET="cross-i386"
+
+ - os: linux
+ name: Linux ppc32 cross
+ compiler: gcc
+ env:
+ - TARGET="cross-ppc32"
+
+ - os: linux
+ name: Linux arm32 cross
+ compiler: gcc
+ env:
+ - TARGET="cross-arm32"
+
+ - os: linux
+ name: Linux mips64 cross
+ compiler: gcc
+ env:
+ - TARGET="cross-mips64"
+
+ - os: linux
+ name: Android arm32 cross
+ compiler: clang
+ env:
+ - TARGET="cross-android-arm32"
+ - ANDROID_NDK=android-ndk-r20
+
+ - os: linux
+ name: Android arm64 cross
compiler: clang
- env: TARGET="cross-arm64"
+ env:
+ - TARGET="cross-android-arm64"
+ - ANDROID_NDK=android-ndk-r20
+
+ - os: linux
+ name: MinGW x86-64 cross
+ compiler: gcc
+ env:
+ - TARGET="cross-win64"
- # Android NDK is Linux/clang only
- os: osx
- env: TARGET="cross-android-arm32"
+ name: macOS
+ compiler: clang
+ env:
+ - TARGET="shared"
+
- os: osx
- env: TARGET="cross-android-arm64"
+ name: iOS
+ compiler: clang
+ env:
+ - TARGET="cross-arm64"
+
+ - os: linux
+ name: Linux GCC 4.8
+ compiler: gcc
+ env:
+ - TARGET="gcc4.8"
+
+ - os: linux
+ name: Minimized
+ compiler: gcc
+ env:
+ - TARGET="mini-shared"
+
- os: linux
+ name: BSI policy
compiler: gcc
- env: TARGET="cross-android-arm32"
+ env:
+ - TARGET="bsi"
+
+ - os: linux
+ name: NIST policy
+ compiler: gcc
+ env:
+ - TARGET="nist"
+
+ - os: linux
+ name: Pylint
+ compiler: gcc
+ env:
+ - TARGET="lint"
+
- os: linux
+ name: Documentation
compiler: gcc
- env: TARGET="cross-android-arm64"
+ env:
+ - TARGET="docs"
install:
- ./src/scripts/ci/setup_travis.sh