# 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: 1 - 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: 1 - script: | cd icu4c/source && ./runConfigureICU Linux && make -j2 check displayName: 'Build and Test' env: CC: clang CXX: clang++ #------------------------------------------------------------------------- - 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: 1 - 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: 1 - 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_MSVC_x64_Release_Distrelease displayName: 'C: MSVC 64-bit Release (VS 2017) + Distrelease' timeoutInMinutes: 30 pool: vmImage: 'vs2017-win2016' demands: - msbuild - visualstudio - Cmd steps: - checkout: self lfs: true fetchDepth: 1 - 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 2017) + Distrelease' timeoutInMinutes: 30 pool: vmImage: 'vs2017-win2016' demands: - msbuild - visualstudio - Cmd steps: - checkout: self lfs: true fetchDepth: 1 - task: VSBuild@1 displayName: 'Build Solution' inputs: solution: icu4c/source/allinone/allinone.sln platform: Win32 configuration: 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 2017) + Distrelease ARM64' timeoutInMinutes: 60 pool: vmImage: 'vs2017-win2016' demands: - msbuild - visualstudio - Cmd steps: - checkout: self lfs: true fetchDepth: 1 - 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_Release_DataFilter displayName: 'C: MSVC 64-bit Release DataFilter (VS 2017)' timeoutInMinutes: 30 pool: vmImage: 'vs2017-win2016' demands: - msbuild - visualstudio - Cmd steps: - checkout: self lfs: true fetchDepth: 1 - powershell: | $filterPath = $Env:BUILD_SOURCESDIRECTORY + "\.ci-builds\data-filter.json" $vstsCommandString = "vso[task.setvariable variable=ICU_DATA_FILTER_FILE]" + $filterPath Write-Host "##$vstsCommandString" - task: VSBuild@1 displayName: 'Build Solution with Data Filter' inputs: solution: icu4c/source/allinone/allinone.sln platform: x64 configuration: Release msbuildArgs: '/p:SkipUWP=true' #------------------------------------------------------------------------- - job: ICU4C_MSVC_x86_Debug displayName: 'C: MSVC 32-bit Debug (VS 2017)' timeoutInMinutes: 60 pool: vmImage: 'vs2017-win2016' demands: - msbuild - visualstudio - Cmd steps: - checkout: self lfs: true fetchDepth: 1 - 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' #------------------------------------------------------------------------- - 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: 1 - 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: 1 - script: | export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU MacOSX && make -j2 tests displayName: 'Build only (WarningsAsErrors)' env: CC: clang CXX: clang++