mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-08 23:10:40 +00:00
738 lines
26 KiB
YAML
738 lines
26 KiB
YAML
# Azure Pipelines (VSTS) configuration for CI builds for ICU.
|
|
|
|
variables:
|
|
MAVEN_ARGS: '--show-version --no-transfer-progress'
|
|
|
|
jobs:
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4J_OpenJDK_Ubuntu_2204
|
|
displayName: 'J: Linux OpenJDK (Ubuntu 22.04)'
|
|
timeoutInMinutes: 20
|
|
pool:
|
|
vmImage: 'ubuntu-22.04'
|
|
demands: ant
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
echo "Building ICU4J" && cd icu4j && mvn install
|
|
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: |
|
|
cd icu4j && cat `find . -name surefire-reports -type d -exec grep -l -r --include="*.txt" FAILED {} \;` && exit 1
|
|
condition: failed() # only run if the build fails.
|
|
displayName: 'List failures (if any)'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_Ubuntu_2204
|
|
displayName: 'C: Linux Clang (Ubuntu 22.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-22.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
cd icu4c/source && ./runConfigureICU Linux && make -j -l2.5 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_2204
|
|
displayName: 'C: Linux Clang DataFilter (Ubuntu 22.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-22.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
# Note: This job uses `make -j2` instead of `make -j -l2.5` because with more parallelism (PR #2456)
|
|
# this check became flaky. The build apparently was not done copying one or another .ucm file before
|
|
# calling makeconv for it, although the Makefile has appropriate dependencies.
|
|
- 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) && \
|
|
(cd test/cintltst && LANG=C LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestEnglishExemplarCharacters /tsutil/cldrtest/TestCoverage)
|
|
displayName: 'Build with Data Filter'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_Clang_Cpp14_Debug_Ubuntu_2204
|
|
displayName: 'C: Linux Clang C++17 Debug (Ubuntu 22.04)'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-22.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 -j -l2.5 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 -j -l2.5 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 -j -l2.5 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 -j -l2.5 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 -j -l2.5 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 -j -l2.5 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 -j -l2.5 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_Release
|
|
displayName: 'C: MSVC x64 ARM32 Release (VS 2019)'
|
|
timeoutInMinutes: 35
|
|
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
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_x64_ARM64_Release_Distrelease
|
|
displayName: 'C: MSVC x64 ARM64 Release (VS 2019) + Distrelease'
|
|
timeoutInMinutes: 35
|
|
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 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_Debug
|
|
displayName: 'C: MSVC x64 Debug (VS 2019)'
|
|
timeoutInMinutes: 35
|
|
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'
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_MSVC_ARM64_Debug
|
|
displayName: 'C: MSVC ARM64 Debug (VS 2019)'
|
|
timeoutInMinutes: 35
|
|
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: 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 -j -l2.5 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_MacOS_WarningsAsErrors
|
|
displayName: 'C: macOS(Latest) Clang WarningsAsErrors'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'macOS-latest'
|
|
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 -j -l2.5 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: 50
|
|
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 -j -l2.5"
|
|
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 -j -l2.5 check"
|
|
displayName: 'Run Tests'
|
|
env:
|
|
CC: gcc
|
|
CXX: g++
|
|
#-------------------------------------------------------------------------
|
|
- job: ICU4C_icuexportdata_Ubuntu_2204
|
|
displayName: 'C: Create Artifacts from icuexportdata'
|
|
timeoutInMinutes: 30
|
|
pool:
|
|
vmImage: 'ubuntu-22.04'
|
|
steps:
|
|
- checkout: self
|
|
lfs: true
|
|
fetchDepth: 10
|
|
- script: |
|
|
cd icu4c/source && ./runConfigureICU Linux && make -j -l2.5
|
|
displayName: 'Build'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
- script: |
|
|
cd icu4c/source
|
|
mkdir -p icuexportdata/uprops/fast
|
|
./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata/uprops/fast --trie-type fast --all
|
|
mkdir -p icuexportdata/uprops/small
|
|
./bin/icuexportdata --mode uprops --index --copyright --verbose --destdir icuexportdata/uprops/small --trie-type small --all
|
|
displayName: 'Build property data files'
|
|
env:
|
|
LD_LIBRARY_PATH: lib
|
|
- script: |
|
|
cd icu4c/source
|
|
mkdir -p icuexportdata/norm/fast
|
|
./bin/icuexportdata --mode norm --index --copyright --verbose --destdir icuexportdata/norm/fast --trie-type fast --all
|
|
mkdir -p icuexportdata/norm/small
|
|
./bin/icuexportdata --mode norm --index --copyright --verbose --destdir icuexportdata/norm/small --trie-type small --all
|
|
displayName: 'Build normalization data files'
|
|
env:
|
|
LD_LIBRARY_PATH: lib
|
|
- script: |
|
|
cd icu4c/source
|
|
mkdir -p icuexportdata/ucase/fast
|
|
./bin/icuexportdata --mode ucase --index --copyright --verbose --destdir icuexportdata/ucase/fast --trie-type fast --all
|
|
mkdir -p icuexportdata/ucase/small
|
|
./bin/icuexportdata --mode ucase --index --copyright --verbose --destdir icuexportdata/ucase/small --trie-type small --all
|
|
displayName: 'Build case data files'
|
|
env:
|
|
LD_LIBRARY_PATH: lib
|
|
- script: |
|
|
cd icu4c/source
|
|
FILES=`ls data/coll "*.txt"`
|
|
mkdir -p icuexportdata/collation/unihan
|
|
./bin/genrb -X -s data/coll/ --ucadata data/in/coll/ucadata-unihan-icu4x.icu -d icuexportdata/collation/unihan $FILES
|
|
rm icuexportdata/collation/unihan/*.res
|
|
mkdir -p icuexportdata/collation/implicithan
|
|
./bin/genrb -X -s data/coll/ --ucadata data/in/coll/ucadata-implicithan-icu4x.icu -d icuexportdata/collation/implicithan $FILES
|
|
rm icuexportdata/collation/implicithan/*.res
|
|
displayName: 'Build collation data files'
|
|
env:
|
|
LD_LIBRARY_PATH: lib
|
|
- script: |
|
|
cd icu4c/source
|
|
mkdir -p icuexportdata/segmenter/dictionary
|
|
for FILE in `ls data/brkitr/dictionaries`
|
|
do
|
|
./bin/gendict --uchars data/brkitr/dictionaries/$FILE /dev/stdout | \
|
|
python3 -c 'import sys; data = sys.stdin.buffer.read(); print(f"trie_data = {[data[i + 1] << 8 | data[i] for i in range(64, len(data) - 1, 2)]}")' \
|
|
> icuexportdata/segmenter/dictionary/`basename $FILE .txt`.toml
|
|
done
|
|
displayName: 'Build segmenter dictionary files'
|
|
env:
|
|
LD_LIBRARY_PATH: lib
|
|
- task: ArchiveFiles@2
|
|
displayName: 'Zip'
|
|
inputs:
|
|
rootFolderOrFile: 'icu4c/source/icuexportdata'
|
|
includeRootFolder: false
|
|
archiveFile: 'icuexportdata_tag-goes-here.zip'
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact'
|
|
inputs:
|
|
PathtoPublish: 'icuexportdata_tag-goes-here.zip'
|
|
ArtifactName: 'icuexportdata_output'
|