| # Azure Pipelines (VSTS) configuration for CI builds for ICU. |
| |
| jobs: |
| #------------------------------------------------------------------------- |
| - job: ICU4J_OpenJDK_Ubuntu_1804 |
| displayName: 'J: Linux OpenJDK (Ubuntu 18.04)' |
| timeoutInMinutes: 20 |
| pool: |
| vmImage: 'ubuntu-18.04' |
| demands: ant |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| - script: | |
| echo "Building ICU4J" && cd icu4j && ant init && ant check && ant localespiCheck |
| 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_1804 |
| displayName: 'C: Linux Clang (Ubuntu 18.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-18.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_DataFilter_1804 |
| displayName: 'C: Linux Clang DataFilter (Ubuntu 18.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-18.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++17 Debug (Ubuntu 18.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-18.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| - script: | |
| export CXXFLAGS="-std=c++17 -Winvalid-constexpr" && cd icu4c/source && ./runConfigureICU --enable-debug --disable-release Linux && make -j2 check |
| displayName: 'Build and Test C++17' |
| 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++ |
| #------------------------------------------------------------------------- |
| - job: ICU4C_GCC11_Cpp20_Ubuntu_2004 |
| displayName: 'C: Linux GCC-11 C++20 (Ubuntu 20.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-20.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| - script: | |
| sudo add-apt-repository ppa:ubuntu-toolchain-r/test |
| sudo apt update |
| sudo apt install gcc-11 g++-11 |
| displayName: 'Install GCC-11' |
| - script: | |
| cd icu4c/source && ./runConfigureICU Linux && make -j2 check |
| displayName: 'Build and Test' |
| env: |
| CC: gcc-11 |
| CXX: g++-11 |
| CXXFLAGS: '-std=c++20 -fext-numeric-literals' |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Clang_Ubuntu_2004_LANG |
| displayName: 'C: Linux Clang (Ubuntu 20.04) - LANG has extension tags' |
| 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: clang |
| CXX: clang++ |
| LANG: "en_US@calendar=gregorian;hours=h12" |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Clang14_Ubuntu_2004_WarningsAsErrors |
| displayName: 'C: Linux Clang-14 WarningsAsErrors (Ubuntu 20.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-20.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| # Install Clang-14 from https://apt.llvm.org/ |
| - script: | |
| curl -Ls https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - |
| sudo apt-add-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main' |
| sudo apt update |
| sudo apt install -qy clang-14 lld-14 libc++-14-dev libc++abi-14-dev |
| displayName: 'Install Clang-14' |
| - script: | |
| cd icu4c/source && ./runConfigureICU Linux && make -j2 tests |
| displayName: 'Build only (WarningsAsErrors)' |
| env: |
| CC: clang-14 |
| CPPFLAGS: '-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor -Wsuggest-override' |
| CXX: clang++-14 |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Clang14_Cpp20_Ubuntu_2004 |
| displayName: 'C: Linux Clang-14 C++20 (Ubuntu 20.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-20.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| # Install Clang-14 from https://apt.llvm.org/ |
| - script: | |
| curl -Ls https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - |
| sudo apt-add-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main' |
| sudo apt update |
| sudo apt install -qy clang-14 lld-14 libc++-14-dev libc++abi-14-dev |
| displayName: 'Install Clang-14' |
| - script: | |
| cd icu4c/source && ./runConfigureICU Linux && make -j2 check |
| displayName: 'Build and Test' |
| env: |
| CC: clang-14 |
| CPPFLAGS: '-Werror' |
| CXX: clang++-14 |
| CXXFLAGS: '-std=c++20' |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Clang14_Cpp20_libcpp_Ubuntu_2004 |
| displayName: 'C: Linux Clang-14 C++20 libc++ (Ubuntu 20.04)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-20.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| # Install Clang-14 from https://apt.llvm.org/ |
| - script: | |
| curl -Ls https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - |
| sudo apt-add-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main' |
| sudo apt update |
| sudo apt install -qy clang-14 lld-14 libc++-14-dev libc++abi-14-dev |
| displayName: 'Install Clang-14' |
| - script: | |
| cd icu4c/source && ./runConfigureICU Linux && make -j2 check |
| displayName: 'Build and Test' |
| env: |
| CC: clang-14 |
| CPPFLAGS: '-Werror' |
| CXX: clang++-14 |
| CXXFLAGS: '-std=c++20 -stdlib=libc++' |
| #------------------------------------------------------------------------- |
| # 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_x64_Release_DataFilter |
| displayName: 'C: MSVC 64-bit Release DataFilter (VS 2019)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'windows-2019' |
| demands: |
| - msbuild |
| - visualstudio |
| - Cmd |
| steps: |
| - 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_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 |
| #------------------------------------------------------------------------- |
| # There is no /std:c++20 yet, so use c++latest as that includes many of |
| # the C++20 compiler and library changes. |
| - job: ICU4C_MSVC_x64_Release_CppLatest |
| displayName: 'C: MSVC 64-bit Release (VS 2019) /std:c++latest' |
| 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:LanguageStandard="stdcpplatest"' |
| - task: BatchScript@1 |
| displayName: 'Run Tests (icucheck.bat)' |
| inputs: |
| filename: icu4c/source/allinone/icucheck.bat |
| arguments: 'x64 Release' |
| #------------------------------------------------------------------------- |
| # VS2019 using the VS2017 toolset builds |
| #------------------------------------------------------------------------- |
| - job: ICU4C_MSVC_x64_Release_VS2017 |
| displayName: 'C: MSVC 64-bit Release (VS 2017)' |
| 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:DefaultPlatformToolset=v141 |
| - 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: '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: Debug |
| msbuildArgs: /p:DefaultPlatformToolset=v141 |
| - 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: 'windows-2019' |
| 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 (Catalina 10.15)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'macOS-10.15' |
| 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++ |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Cygwin_GCC_x86_64_Release |
| displayName: 'C: Cygwin GCC x86_64 Release' |
| timeoutInMinutes: 180 |
| pool: |
| vmImage: 'windows-2019' |
| variables: |
| ICU_CI_CACHE: c:\icu-ci-cache |
| CYG_URL: https://cygwin.com/setup-x86_64.exe |
| CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/ |
| CYG_PACKAGES: automake,gcc-core,gcc-g++,make,pkg-config,perl,python3 |
| CYG_ROOT: c:\cygwin-root |
| CYG_CACHE: '$(ICU_CI_CACHE)\cygwin64-v3' |
| CYG_CACHED_SETUP: '$(CYG_CACHE)\setup.exe' |
| CYG_VERSION_KEY: cygwin-3.2 |
| steps: |
| # Use 'autocrlf input' since checked-in files may already be using CRLF. |
| - script: | |
| git config --global core.autocrlf input |
| displayName: 'Configure Git to checkout with Unix line endings (LF)' |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| # Cache expires after 7 days of no activity. |
| - task: Cache@2 |
| displayName: 'Restore Cygwin cache' |
| inputs: |
| # Use the contents of the file ".azure-pipelines.yml" as part of the key, as that contains the list of CYG_PACKAGES. |
| # Also include the Cygwin version as part of the key. If we want to use a newer version of Cygwin, we can update CYG_VERSION_KEY. |
| # Note: CYG_VERSION_KEY may become out of sync with (older than) the version we actually use if we update this file |
| # without updating CYG_VERSION_KEY. Any updates to this file guarantees that we're using the latest version. |
| key: '"$(CYG_VERSION_KEY)" | .ci-builds/.azure-pipelines.yml' |
| path: "$(CYG_CACHE)" |
| - task: PowerShell@2 |
| displayName: 'Download Cygwin setup' |
| inputs: |
| targetType: inline |
| script: | |
| if ( !(Test-Path "${env:CYG_CACHED_SETUP}" -NewerThan (Get-Date).AddDays(-7)) ) |
| { |
| Write-Host "Cached Cygwin setup does not exist or is older than 7 days, downloading from external site." |
| |
| New-Item -Force -Type Directory $env:CYG_CACHE |
| Write-Host "Downloading Cygwin setup..." |
| |
| $start_time = Get-Date |
| (New-Object System.Net.WebClient).DownloadFile($env:CYG_URL, $env:CYG_CACHED_SETUP) |
| |
| Write-Output "Download took: $((Get-Date).Subtract($start_time).Seconds) second(s)." |
| } |
| - script: | |
| %CYG_CACHED_SETUP% --no-verify --quiet-mode --no-shortcuts --no-startmenu --no-desktop --upgrade-also --only-site --site "%CYG_MIRROR%" --root "%CYG_ROOT%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%" |
| displayName: 'Install Cygwin' |
| - script: | |
| %CYG_ROOT%\\bin\\sh -lc 'echo Hello' && %CYG_ROOT%\\bin\\sh -lc 'uname -a' |
| displayName: 'Check Cygwin environment' |
| - script: | |
| %CYG_ROOT%\\bin\\bash -lc "cd $(cygpath \"$(Build.SourcesDirectory)\") && cd icu4c/source && ./runConfigureICU Cygwin && make tests" |
| displayName: 'Build ICU (source and test)' |
| env: |
| CC: gcc |
| CXX: g++ |
| - script: | |
| %CYG_ROOT%\\bin\\bash -lc "cd $(cygpath \"$(Build.SourcesDirectory)\") && cd icu4c/source && make check" |
| displayName: 'Run Tests' |
| env: |
| CC: gcc |
| CXX: g++ |
| #------------------------------------------------------------------------- |
| - job: ICU4C_icuexportdata_Ubuntu_1804 |
| displayName: 'C: Create Artifacts from icuexportdata' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'ubuntu-18.04' |
| steps: |
| - checkout: self |
| lfs: true |
| fetchDepth: 10 |
| - script: | |
| cd icu4c/source && ./runConfigureICU Linux && make -j2 |
| displayName: 'Build' |
| env: |
| CC: clang |
| CXX: clang++ |
| - script: | |
| mkdir -p icu4c/source/icuexportdata_uprops_full/fast |
| mkdir -p icu4c/source/icuexportdata_uprops_full/small |
| cd icu4c/source |
| LD_LIBRARY_PATH=lib ./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata_uprops_full/fast --trie-type fast --all |
| LD_LIBRARY_PATH=lib ./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata_uprops_full/small --trie-type small --all |
| displayName: 'Build Unicode property data export file (Full)' |
| # In the sample file, include: |
| # - Basic binary properties: AHex WSpace |
| # - Property of strings: Basic_Emoji |
| # - POSIX binary property: blank |
| # - Enumerated properties: gc nt sc |
| - script: | |
| mkdir -p icu4c/source/icuexportdata_uprops_sample/fast |
| mkdir -p icu4c/source/icuexportdata_uprops_sample/small |
| cd icu4c/source |
| LD_LIBRARY_PATH=lib ./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata_uprops_sample/fast --trie-type fast AHex gc nt Basic_Emoji sc WSpace blank |
| LD_LIBRARY_PATH=lib ./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata_uprops_sample/small --trie-type small AHex gc nt Basic_Emoji sc WSpace blank |
| displayName: 'Build Unicode property data export file (Sample)' |
| - task: PublishBuildArtifacts@1 |
| displayName: 'Publish Artifact: icuexportdata_uprops_full' |
| inputs: |
| PathtoPublish: 'icu4c/source/icuexportdata_uprops_full' |
| ArtifactName: 'icuexportdata_uprops_full' |
| - task: PublishBuildArtifacts@1 |
| displayName: 'Publish Artifact: icuexportdata_uprops_sample' |
| inputs: |
| PathtoPublish: 'icu4c/source/icuexportdata_uprops_sample' |
| ArtifactName: 'icuexportdata_uprops_sample' |