| # 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 |
| # exit with a non-zero status in order to make this step show as a red X in the UI. |
| - script: | |
| [ -d icu4j/out/junit-results ] && cd icu4j && cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;` && exit 1 |
| 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 && 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++ |