mirror of
https://gitee.com/openharmony/third_party_icu
synced 2024-11-27 02:11:01 +00:00
290 lines
9.6 KiB
YAML
290 lines
9.6 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: 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++
|