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
      addons:
        apt:
          packages:
            - ant
            - ant-optional
      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 {} \;`

    - name: "c: linux gcc 8 Wextra"
      dist:     bionic
      language: cpp
      addons:
         apt:
           packages:
             - g++-8
      env: PREFIX=/tmp/icu-prefix CC=gcc-8 CXX=g++-8 CXXFLAGS="-Wextra"
      before_script:
        - mkdir build
        - cd build
        - ../icu4c/source/runConfigureICU Linux --disable-debug --enable-release --disable-layoutex --prefix="${PREFIX}" || (tail -100 config.log ; false)
        - make -j2
      script:
        - make -j2 check
        - make install
        - PATH="${PREFIX}/bin:$PATH" make -C test/hdrtst check

    # 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 (debug)"
      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.
    # Includes dependency checker on an in-source, optimized build.
    # Includes checking @draft etc. API tags vs. ifndef guards like
    # U_HIDE_DRAFT_API and U_FORCE_HIDE_DRAFT_API.
    # (FORCE guards make this tool pass but won't compile to working code.
    # See the testtagsguards.sh script for details.)
    - 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_install:
        - sudo apt-get -y install doxygen  # for make dist
      before_script:
        - cd icu4c/source
        - ./runConfigureICU Linux
        - make -j2
      script:
        - make -j2 check
        - ( cd test/depstest && python3 depstest.py ../../../source/ )
        - ( cd .. && source/test/hdrtst/testtagsguards.sh )
        - make dist # not sure if this is -j safe everywhere.

    - 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

    # out of source gcc 8 build with c++14, runs icuinfo
    - name: "c: linux gcc 8 c++14"
      dist:     bionic
      language: cpp
      addons:
         apt:
           packages:
             - g++-8
      env: PREFIX=/tmp/icu-prefix CC=gcc-8 CXX=g++-8 CXXFLAGS="-std=c++14"
      before_script:
        - mkdir build && cd build
        - ../icu4c/source/runConfigureICU Linux --disable-layout --disable-layoutex --prefix="${PREFIX}"
        - make -j2
      script:
        - make -j2 check && make install
        - cd "${PREFIX}/bin" && LD_LIBRARY_PATH=../lib ./icuinfo

    # 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 (debug)"
      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 (debug)"
      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

    - name: "j: icu4c release tools"
      language: "java"
      script:
        - mvn -f tools/release/java/pom.xml package dependency:analyze
      cache:
        directories:
        - $HOME/.m2

    # Check compilation of internal headers.
    - name: "internal header compilation check"
      language: cpp
      os:       linux
      before_script:
        - cd icu4c/source
      script:
        - test/hdrtst/testinternalheaders.sh

    # Check source files for valid UTF-8 and for absence of BOM.
    - name: "UTF-8 and BOM check"
      os:   linux
      script:
        - tools/scripts/icu-file-utf8-check.py
