396 lines
13 KiB
YAML
396 lines
13 KiB
YAML
# Azure Pipelines (VSTS) configuration for CI builds for ICU.
|
|
|
|
jobs:
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4J_OpenJDK_Ubuntu_1604
|
|
displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
|
|
timeoutInMinutes: 20
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
demands: ant
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
echo "Building ICU4J" && cd icu4j && ant init && ant check
|
|
displayName: 'Build and Test'
|
|
env:
|
|
BUILD: ICU4J
|
|
- script: |
|
|
[ -d icu4j/out/junit-results ] && cd icu4j && cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
|
|
condition: failed() # only run if the build fails.
|
|
displayName: 'List failures (if any)'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_Ubuntu_1604
|
|
displayName: 'C: Linux Clang (Ubuntu 16.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
cd icu4c/source && ./runConfigureICU Linux && make -j2 check
|
|
displayName: 'Build and Test'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
- script: |
|
|
cd icu4c/source/test/cintltst && LANG=C LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
|
|
displayName: 'Test C Default locale'
|
|
- script: |
|
|
cd icu4c/source/test/cintltst && LANG=C.UTF-8 LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
|
|
displayName: 'Test C.UTF-8 Default locale'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_Ubuntu_1604_WarningsAsErrors
|
|
displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU Linux && make -j2 tests
|
|
displayName: 'Build only (WarningsAsErrors)'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_Ubuntu_DataFilter_1604
|
|
displayName: 'C: Linux Clang DataFilter (Ubuntu 16.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
cd icu4c/source && \
|
|
ICU_DATA_FILTER_FILE=../../.ci-builds/data-filter.json ./runConfigureICU Linux && \
|
|
make -j2 tests && \
|
|
\[ ! -d data/out/build/icudt66l/translit \] && \
|
|
(cd test/intltest && LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./intltest translit/TransliteratorTest/TestBasicTransliteratorEvenWithoutData)
|
|
displayName: 'Build with Data Filter'
|
|
env:
|
|
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: 10
|
|
- 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_GCC_Ubuntu_2004
|
|
displayName: 'C: Linux GCC (Ubuntu 20.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-20.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
cd icu4c/source && ./runConfigureICU Linux && make -j2 check
|
|
displayName: 'Build and Test'
|
|
env:
|
|
CC: gcc
|
|
CXX: g++
|
|
#-------------------------------------------------------------------------
|
|
# VS 2019 Builds
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_Release_Distrelease
|
|
displayName: 'C: MSVC 64-bit Release (VS 2019) + Distrelease'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: x64
|
|
configuration: Release
|
|
- task: BatchScript@1
|
|
displayName: 'Run Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x64 Release'
|
|
- task: PowerShell@2
|
|
displayName: 'PowerShell: Distrelease script (x64)'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: 'icu4c/packaging/distrelease.ps1'
|
|
arguments: '-arch x64'
|
|
workingDirectory: icu4c
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish x64 Artifacts: icu-windows.zip'
|
|
inputs:
|
|
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
|
|
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x64_Release'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x86_Release_Distrelease
|
|
displayName: 'C: MSVC 32-bit Release (VS 2019) + Distrelease'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: Win32
|
|
configuration: Release
|
|
- task: BatchScript@1
|
|
displayName: 'Run Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x86 Release'
|
|
- task: PowerShell@2
|
|
displayName: 'PowerShell: Distrelease script (x86)'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: 'icu4c/packaging/distrelease.ps1'
|
|
arguments: '-arch x86'
|
|
workingDirectory: icu4c
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish x86 Artifacts: icu-windows.zip'
|
|
inputs:
|
|
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
|
|
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x86_Release'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_ARM32_ARM64_Release_Distrelease
|
|
displayName: 'C: MSVC x64 ARM32 ARM64 Release (VS 2019) + Distrelease ARM64'
|
|
timeoutInMinutes: 60
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: x64
|
|
configuration: Release
|
|
- task: VSBuild@1
|
|
displayName: 'Build ARM32'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: ARM
|
|
configuration: Release
|
|
- task: VSBuild@1
|
|
displayName: 'Build ARM64'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: ARM64
|
|
configuration: Release
|
|
- task: PowerShell@2
|
|
displayName: 'PowerShell: Distrelease script (ARM64)'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: 'icu4c/packaging/distrelease.ps1'
|
|
arguments: '-arch ARM64'
|
|
workingDirectory: icu4c
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish ARM64 Artifacts: icu-windows.zip'
|
|
inputs:
|
|
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
|
|
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_ARM64_Release'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_ARM64_Debug
|
|
displayName: 'C: MSVC x64 ARM64 Debug (VS 2019)'
|
|
timeoutInMinutes: 45
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: x64
|
|
configuration: Debug
|
|
- task: BatchScript@1
|
|
displayName: 'Run x64 Debug Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x64 Debug'
|
|
- task: VSBuild@1
|
|
displayName: 'Build ARM64 Debug'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: ARM64
|
|
configuration: Debug
|
|
#-------------------------------------------------------------------------
|
|
# VS 2017 Builds
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_Release_VS2017
|
|
displayName: 'C: MSVC 64-bit Release (VS 2017)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'vs2017-win2016'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: x64
|
|
configuration: Release
|
|
- task: BatchScript@1
|
|
displayName: 'Run Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x64 Release'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x86_Debug_VS2017
|
|
displayName: 'C: MSVC 32-bit Debug (VS 2017)'
|
|
timeoutInMinutes: 60
|
|
pool:
|
|
vmImage: 'vs2017-win2016'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: Win32
|
|
configuration: Debug
|
|
- task: BatchScript@1
|
|
displayName: 'Run Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x86 Debug'
|
|
#-------------------------------------------------------------------------
|
|
# VS2019 using the VS2015 toolset
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_Release_VS2015
|
|
displayName: 'C: MSVC 64-bit Release (VS 2015)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- task: VSBuild@1
|
|
displayName: 'Build Solution'
|
|
inputs:
|
|
solution: icu4c/source/allinone/allinone.sln
|
|
platform: x64
|
|
configuration: Release
|
|
msbuildArgs: /p:SkipUWP=true /p:DefaultPlatformToolset=v140 /p:AutodetectWin10SDK=true
|
|
- task: BatchScript@1
|
|
displayName: 'Run Tests (icucheck.bat)'
|
|
inputs:
|
|
filename: icu4c/source/allinone/icucheck.bat
|
|
arguments: 'x64 Release'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSYS2_GCC_x86_64_Release
|
|
displayName: 'C: MSYS2 GCC x86_64 Release'
|
|
timeoutInMinutes: 45
|
|
pool:
|
|
vmImage: 'vs2017-win2016'
|
|
demands:
|
|
- Cmd
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
choco install -y msys2
|
|
rem refreshenv
|
|
displayName: 'Install MSYS2'
|
|
- script: |
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Hello World' && uname -a"
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S mingw-w64-x86_64-toolchain"
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S make"
|
|
exit
|
|
displayName: 'Install mingw-w64-x86_64-toolchain'
|
|
- script: |
|
|
set MSYSTEM=MINGW64
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "cd $BUILD_SOURCESDIRECTORY && cd icu4c/source && ./runConfigureICU MinGW --prefix='/tmp/build-icu' && make -j2 check"
|
|
displayName: 'Build and Test'
|
|
- script: |
|
|
set MSYSTEM=MINGW64
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "cd $BUILD_SOURCESDIRECTORY && cd icu4c/source && make install && cd /tmp/build-icu && echo 'Recursive ls' && ls -lR"
|
|
displayName: 'make install'
|
|
- script: |
|
|
set MSYSTEM=MINGW64
|
|
c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Run icuinfo from MSYS shell' && cd /tmp/build-icu/bin && ./icuinfo.exe"
|
|
echo 'Run icuinfo from CMD shell' && cd /d C:\tools\msys64\tmp\build-icu\bin && set PATH=C:\tools\msys64\mingw64\bin;%PATH% && icuinfo.exe"
|
|
displayName: 'run icuinfo'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_MacOSX_WarningsAsErrors
|
|
displayName: 'C: macOSX Clang WarningsAsErrors (Mojave 10.14)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'macOS-10.14'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU MacOSX && make -j2 check
|
|
displayName: 'Build and Test (WarningsAsErrors)'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|