ICU-21104 Add build bots using Ubuntu 18.04 with C++14

This change adds an Azure build bot that builds using Clang on Ubuntu
18.04 with C++14 in debug mode, and a build bot on Travis that builds
using GCC with C++14.

Note: The Ubuntu 18.04 image doesn't have HarfBuzz, so we need to disable
building the layout engine.
This commit is contained in:
Jeff Genovy 2020-05-03 12:41:08 -07:00
parent 82a5959b86
commit 681a7aa451
2 changed files with 40 additions and 7 deletions

View File

@ -6,7 +6,7 @@ jobs:
displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
timeoutInMinutes: 20
pool:
vmImage: 'Ubuntu 16.04'
vmImage: 'ubuntu-16.04'
demands: ant
steps:
- checkout: self
@ -26,7 +26,7 @@ jobs:
displayName: 'C: Linux Clang (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'Ubuntu 16.04'
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
@ -42,7 +42,7 @@ jobs:
displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'Ubuntu 16.04'
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
@ -58,7 +58,7 @@ jobs:
displayName: 'C: Linux Clang DataFilter (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'Ubuntu 16.04'
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
@ -74,6 +74,22 @@ jobs:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Cpp14_Debug_Ubuntu_1804
displayName: 'C: Linux Clang C++14 Debug (Ubuntu 18.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: self
lfs: true
fetchDepth: 1
- script: |
export CXXFLAGS="-std=c++14 -Winvalid-constexpr" && cd icu4c/source && ./runConfigureICU --enable-debug --disable-release Linux --disable-layout --disable-layoutex && make -j2 check
displayName: 'Build and Test C++14'
env:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_Release_Distrelease
displayName: 'C: MSVC 64-bit Release (VS 2017) + Distrelease'
timeoutInMinutes: 30

View File

@ -67,7 +67,7 @@ matrix:
#
# Invokes test/hdrtst to check public headers compliance.
- name: "c: linux gcc"
- name: "c: linux gcc (debug)"
dist: xenial
language: cpp
compiler: gcc
@ -118,10 +118,27 @@ matrix:
# 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"
- name: "c: linux asan (debug)"
language: cpp
env:
- CPPFLAGS="-fsanitize=address"
@ -140,7 +157,7 @@ matrix:
# Clang Linux with thread sanitizer.
#
- name: "c: linux tsan"
- name: "c: linux tsan (debug)"
language: cpp
env:
- INTLTEST_OPTS="utility/MultithreadTest"