| # Azure Pipelines (VSTS) configuration for CI builds for ICU. |
| |
| resources: |
| - repo: self |
| lfs: true |
| fetchDepth: 1 |
| |
| jobs: |
| #------------------------------------------------------------------------- |
| - job: ICU4J_OpenJDK_Ubuntu_1604 |
| displayName: 'J: Linux OpenJDK (Ubuntu 16.04)' |
| timeoutInMinutes: 20 |
| pool: |
| vmImage: 'Ubuntu 16.04' |
| demands: ant |
| steps: |
| - script: | |
| echo "Building ICU4J" && cd icu4j && ant init && ant check |
| displayName: 'Build and Test' |
| env: |
| BUILD: ICU4J |
| - script: | |
| 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: |
| - 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: |
| - script: | |
| export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi" && 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: |
| - script: | |
| cd icu4c/source && ICU_DATA_FILTER_FILE=../../.ci-builds/data-filter.json ./runConfigureICU Linux && make -j2 |
| 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: |
| - 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: |
| - 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: |
| - 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: |
| - 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: |
| - 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' |
| #------------------------------------------------------------------------- |
| # Using a manual install of Python 3, until the vs2015 image has it |
| # by default. |
| # |
| - job: ICU4C_MSVC_x64_Release_VS2015 |
| displayName: 'C: MSVC 64-bit Release (VS 2015)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'vs2015-win2012r2' |
| demands: |
| - msbuild |
| - visualstudio |
| - Cmd |
| steps: |
| - powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64-webinstall.exe -OutFile c:\py3-setup.exe' |
| - script: | |
| c:\py3-setup.exe /quiet PrependPath=1 InstallAllUsers=1 Include_launcher=1 InstallLauncherAllUsers=1 Include_test=0 Include_doc=0 Include_dev=0 Include_debug=0 Include_tcltk=0 TargetDir=c:\py3 |
| - script: | |
| @echo ##vso[task.prependpath]C:\py3 |
| @echo ##vso[task.prependpath]C:\py3\Scripts |
| - script: | |
| python --version |
| py -3 --version |
| - task: VSBuild@1 |
| displayName: 'Build Solution' |
| inputs: |
| solution: icu4c/source/allinone/allinone.sln |
| platform: x64 |
| configuration: Release |
| msbuildArgs: '/p:SkipUWP=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: |
| - 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 && make -j2 check" |
| displayName: 'Build and Test ICU4C' |
| #------------------------------------------------------------------------- |
| - job: ICU4C_Clang_MacOSX_WarningsAsErrors |
| displayName: 'C: macOSX Clang WarningsAsErrors (Mojave 10.14)' |
| timeoutInMinutes: 30 |
| pool: |
| vmImage: 'macOS-10.14' |
| steps: |
| - script: | |
| export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi" && cd icu4c/source && ./runConfigureICU MacOSX && make -j2 tests |
| displayName: 'Build only (WarningsAsErrors)' |
| env: |
| CC: clang |
| CXX: clang++ |