0367d4c135
Also update the Travis CI configuration to use newer compilers, and the dependency checker to be happy with the newer clang compiler.
132 lines
4.3 KiB
YAML
132 lines
4.3 KiB
YAML
matrix:
|
|
include:
|
|
|
|
# ICU4C Docs Build
|
|
# TODO: publish the latest built docs from master on GitHub pages.
|
|
# See https://gist.github.com/vidavidorra/548ffbcdae99d752da02 for ideas.
|
|
- name: "c: docs"
|
|
dist: xenial
|
|
language: cpp
|
|
addons:
|
|
apt:
|
|
update: true
|
|
packages:
|
|
- doxygen
|
|
before_script:
|
|
- cd icu4c/source
|
|
- ./runConfigureICU Linux --disable-renaming
|
|
script:
|
|
# fail if 'warning:' appears in doxygen's output, but ignore warnings from file Doxyfile.
|
|
# The Doxygen version from Travis is down-rev, and doesn't recognize some options
|
|
# in the Doxyfile config file.
|
|
# Regex note: (?! ... ) is a negative lookahead. Succeed if the pattern is not present.
|
|
- set +o pipefail && make doc 2>&1 | tee doxygen.log && ( ! grep -P 'warning:(?! .* file Doxyfile)' doxygen.log )
|
|
|
|
|
|
- name: "j"
|
|
language: java
|
|
env: BUILD=ICU4J
|
|
before_script:
|
|
- cd icu4j
|
|
- ant init
|
|
script:
|
|
- ant check
|
|
after_failure:
|
|
- cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
|
|
|
|
# gcc debug build.
|
|
# Includes dependency checker.
|
|
# Note - the dependency checker needs to be run on both a debug and an optimized build.
|
|
# This one (gcc) for debug, and linux clang (below) for optimized.
|
|
#
|
|
# Test both out-of-source and in-source builds. This one (gcc) for out-of-source,
|
|
# and linux clang (below) for in-source.
|
|
#
|
|
# Invokes test/hdrtst to check public headers compliance.
|
|
|
|
- name: "c: linux gcc"
|
|
dist: xenial
|
|
language: cpp
|
|
compiler: gcc
|
|
env: PREFIX=/tmp/icu-prefix
|
|
before_script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../icu4c/source/runConfigureICU --enable-debug --disable-release Linux --prefix="${PREFIX}" --enable-tracing
|
|
- make -j2
|
|
script:
|
|
- make -j2 check
|
|
- ( cd ../icu4c/source/test/depstest && ./depstest.py ../../../../build/ )
|
|
- make install
|
|
- PATH="${PREFIX}/bin:$PATH" make -C test/hdrtst check
|
|
|
|
# clang release build with some options to enforce useful constraints.
|
|
- name: "c: linux clang"
|
|
dist: xenial
|
|
language: cpp
|
|
env:
|
|
- CPPFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
|
|
- CFLAGS="-Wimplicit-fallthrough"
|
|
- CXXFLAGS="-Wimplicit-fallthrough"
|
|
compiler: clang
|
|
before_script:
|
|
- cd icu4c/source
|
|
- ./runConfigureICU Linux
|
|
- make -j2
|
|
script:
|
|
- make -j2 check
|
|
- ( cd test/depstest && python3 depstest.py ../../../source/ )
|
|
|
|
- name: "c: osx clang"
|
|
language: cpp
|
|
env: BUILD=MACINTOSH
|
|
os: osx
|
|
compiler: clang
|
|
# Use the macOS target to test Python 2 in data build script.
|
|
# TODO(ICU-20301): Change this back to the default Python version 3.
|
|
script: cd icu4c/source && PYTHON=python2 ./runConfigureICU MacOSX && make -j2 check
|
|
|
|
# Clang Linux with address sanitizer.
|
|
# Note - the 'sudo: true' option forces Travis to use a Virtual machine on GCE instead of
|
|
# a Container on EC2 or Packet. Asan builds of ICU fail otherwise.
|
|
- name: "c: linux asan"
|
|
language: cpp
|
|
env:
|
|
- CPPFLAGS="-fsanitize=address"
|
|
- LDFLAGS="-fsanitize=address"
|
|
os: linux
|
|
dist: xenial
|
|
sudo: true
|
|
compiler: clang
|
|
before_script:
|
|
- cd icu4c/source
|
|
- ./runConfigureICU --enable-debug --disable-release Linux --disable-renaming --enable-tracing
|
|
- make -j2
|
|
script:
|
|
- make -j2 check
|
|
|
|
|
|
# Clang Linux with thread sanitizer.
|
|
#
|
|
- name: "c: linux tsan"
|
|
language: cpp
|
|
env:
|
|
- INTLTEST_OPTS="utility/MultithreadTest"
|
|
- CPPFLAGS="-fsanitize=thread"
|
|
- LDFLAGS=-fsanitize=thread
|
|
os: linux
|
|
dist: xenial
|
|
sudo: true
|
|
compiler: clang
|
|
script:
|
|
- cd icu4c/source
|
|
- ./runConfigureICU --enable-debug --disable-release Linux --disable-renaming
|
|
- make -j2
|
|
- make -j2 -C test
|
|
- make -j2 -C test/intltest check
|
|
|
|
# copyright scan / future linter
|
|
- name: "lint"
|
|
script:
|
|
- perl tools/scripts/cpysearch/cpyscan.pl
|