Travis recently appears unable to find a matching homebrew package for 32bit gfortran, and the IOS crossbuild suffered from excessive output due to the known problem with "ASMNAME redefined" warnings when CFLAGS is set in the environment
196 lines
5.9 KiB
YAML
196 lines
5.9 KiB
YAML
# 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: true
|
|
language: c
|
|
|
|
matrix:
|
|
include:
|
|
- &test-ubuntu
|
|
os: linux
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gfortran
|
|
before_script: &common-before
|
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32"
|
|
script:
|
|
- set -e
|
|
- 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"
|
|
|
|
- <<: *test-ubuntu
|
|
os: linux-ppc64le
|
|
before_script:
|
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=POWER8 NUM_THREADS=32"
|
|
env:
|
|
# for matrix annotation only
|
|
- TARGET_BOX=PPC64LE_LINUX
|
|
- BTYPE="BINARY=64 USE_OPENMP=1"
|
|
|
|
- <<: *test-ubuntu
|
|
env:
|
|
- TARGET_BOX=LINUX64
|
|
- BTYPE="BINARY=64 USE_OPENMP=1"
|
|
|
|
- <<: *test-ubuntu
|
|
env:
|
|
- TARGET_BOX=LINUX64
|
|
- BTYPE="BINARY=64 INTERFACE64=1"
|
|
|
|
- <<: *test-ubuntu
|
|
compiler: clang
|
|
env:
|
|
- TARGET_BOX=LINUX64
|
|
- BTYPE="BINARY=64 CC=clang"
|
|
|
|
- <<: *test-ubuntu
|
|
compiler: clang
|
|
env:
|
|
- TARGET_BOX=LINUX64
|
|
- BTYPE="BINARY=64 INTERFACE64=1 CC=clang"
|
|
|
|
- <<: *test-ubuntu
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gcc-multilib
|
|
- gfortran-multilib
|
|
env:
|
|
- TARGET_BOX=LINUX32
|
|
- BTYPE="BINARY=32"
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- binutils-mingw-w64-x86-64
|
|
- gcc-mingw-w64-x86-64
|
|
- gfortran-mingw-w64-x86-64
|
|
before_script: *common-before
|
|
script:
|
|
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
|
env:
|
|
- TARGET_BOX=WIN64
|
|
- BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
|
|
|
|
# Build & test on Alpine Linux inside chroot, i.e. on system with musl libc.
|
|
# These jobs needs sudo, so Travis runs them on VM-based infrastructure
|
|
# which is slower than container-based infrastructure used for jobs
|
|
# that don't require sudo.
|
|
- &test-alpine
|
|
os: linux
|
|
dist: trusty
|
|
sudo: true
|
|
language: minimal
|
|
before_install:
|
|
- "wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.9.0/alpine-chroot-install' \
|
|
&& echo 'e5dfbbdc0c4b3363b99334510976c86bfa6cb251 alpine-chroot-install' | sha1sum -c || exit 1"
|
|
- alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
|
|
install:
|
|
- sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers'
|
|
before_script: *common-before
|
|
script:
|
|
- set -e
|
|
# XXX: Disable some warnings for now to avoid exceeding Travis limit for log size.
|
|
- alpine make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
|
CFLAGS="-Wno-misleading-indentation -Wno-sign-conversion -Wno-incompatible-pointer-types"
|
|
- alpine make -C test $COMMON_FLAGS $BTYPE
|
|
- alpine make -C ctest $COMMON_FLAGS $BTYPE
|
|
- alpine make -C utest $COMMON_FLAGS $BTYPE
|
|
env:
|
|
- TARGET_BOX=LINUX64_MUSL
|
|
- BTYPE="BINARY=64"
|
|
|
|
# XXX: This job segfaults in TESTS OF THE COMPLEX LEVEL 3 BLAS,
|
|
# but only on Travis CI, cannot reproduce it elsewhere.
|
|
#- &test-alpine-openmp
|
|
# <<: *test-alpine
|
|
# env:
|
|
# - TARGET_BOX=LINUX64_MUSL
|
|
# - BTYPE="BINARY=64 USE_OPENMP=1"
|
|
|
|
- <<: *test-alpine
|
|
env:
|
|
- TARGET_BOX=LINUX64_MUSL
|
|
- BTYPE="BINARY=64 INTERFACE64=1"
|
|
|
|
# Build with the same flags as Alpine do in OpenBLAS package.
|
|
- <<: *test-alpine
|
|
env:
|
|
- TARGET_BOX=LINUX64_MUSL
|
|
- BTYPE="BINARY=64 NO_AFFINITY=1 USE_OPENMP=0 NO_LAPACK=0 TARGET=CORE2"
|
|
|
|
- &test-cmake
|
|
os: linux
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gfortran
|
|
- cmake
|
|
dist: trusty
|
|
sudo: true
|
|
before_script:
|
|
- COMMON_ARGS="-DTARGET=NEHALEM -DNUM_THREADS=32"
|
|
script:
|
|
- set -e
|
|
- mkdir build
|
|
- CONFIG=Release
|
|
- cmake -Bbuild -H. $CMAKE_ARGS $COMMON_ARGS -DCMAKE_BUILD_TYPE=$CONFIG
|
|
- cmake --build build --config $CONFIG -- -j2
|
|
env:
|
|
- CMAKE=1
|
|
- <<: *test-cmake
|
|
env:
|
|
- CMAKE=1 CMAKE_ARGS="-DNOFORTRAN=1"
|
|
- <<: *test-cmake
|
|
compiler: gcc
|
|
env:
|
|
- CMAKE=1
|
|
|
|
- &test-macos
|
|
os: osx
|
|
osx_image: xcode10.1
|
|
before_script:
|
|
- COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
|
|
- brew update
|
|
- brew install gcc@8 # for gfortran
|
|
script:
|
|
- travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
|
|
env:
|
|
- BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-8"
|
|
|
|
- <<: *test-macos
|
|
osx_image: xcode10.0
|
|
env:
|
|
- BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
|
|
|
|
- <<: *test-macos
|
|
osx_image: xcode10.1
|
|
env:
|
|
- CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk"
|
|
- CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch arm64 -miphoneos-version-min=10.0"
|
|
- BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
|
|
|
|
# whitelist
|
|
branches:
|
|
only:
|
|
- master
|
|
- 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
|