• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Azure Pipelines (VSTS) configuration for CI builds for ICU.
2
3jobs:
4#-------------------------------------------------------------------------
5- job: ICU4J_OpenJDK_Ubuntu_1604
6  displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
7  timeoutInMinutes: 20
8  pool:
9    vmImage: 'Ubuntu 16.04'
10    demands: ant
11  steps:
12    - checkout: self
13      lfs: true
14      fetchDepth: 1
15    - script: |
16        echo "Building ICU4J" && cd icu4j && ant init && ant check
17      displayName: 'Build and Test'
18      env:
19        BUILD: ICU4J
20    - script: |
21        [ -d icu4j/out/junit-results ] && cd icu4j && cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
22      condition: failed() # only run if the build fails.
23      displayName: 'List failures (if any)'
24#-------------------------------------------------------------------------
25- job: ICU4C_Clang_Ubuntu_1604
26  displayName: 'C: Linux Clang (Ubuntu 16.04)'
27  timeoutInMinutes: 30
28  pool:
29    vmImage: 'Ubuntu 16.04'
30  steps:
31    - checkout: self
32      lfs: true
33      fetchDepth: 1
34    - script: |
35        cd icu4c/source && ./runConfigureICU Linux && make -j2 check
36      displayName: 'Build and Test'
37      env:
38        CC: clang
39        CXX: clang++
40#-------------------------------------------------------------------------
41- job: ICU4C_Clang_Ubuntu_1604_WarningsAsErrors
42  displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
43  timeoutInMinutes: 30
44  pool:
45    vmImage: 'Ubuntu 16.04'
46  steps:
47    - checkout: self
48      lfs: true
49      fetchDepth: 1
50    - script: |
51        export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU Linux && make -j2 tests
52      displayName: 'Build only (WarningsAsErrors)'
53      env:
54        CC: clang
55        CXX: clang++
56#-------------------------------------------------------------------------
57- job: ICU4C_Clang_Ubuntu_DataFilter_1604
58  displayName: 'C: Linux Clang DataFilter (Ubuntu 16.04)'
59  timeoutInMinutes: 30
60  pool:
61    vmImage: 'Ubuntu 16.04'
62  steps:
63    - checkout: self
64      lfs: true
65      fetchDepth: 1
66    - script: |
67        cd icu4c/source && \
68        ICU_DATA_FILTER_FILE=../../.ci-builds/data-filter.json ./runConfigureICU Linux && \
69        make -j2 tests && \
70        \[ ! -d data/out/build/icudt66l/translit \] && \
71        (cd test/intltest && LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./intltest translit/TransliteratorTest/TestBasicTransliteratorEvenWithoutData)
72      displayName: 'Build with Data Filter'
73      env:
74        CC: clang
75        CXX: clang++
76#-------------------------------------------------------------------------
77- job: ICU4C_MSVC_x64_Release_Distrelease
78  displayName: 'C: MSVC 64-bit Release (VS 2017) + Distrelease'
79  timeoutInMinutes: 30
80  pool:
81    vmImage: 'vs2017-win2016'
82    demands: 
83      - msbuild
84      - visualstudio
85      - Cmd
86  steps:
87    - checkout: self
88      lfs: true
89      fetchDepth: 1
90    - task: VSBuild@1
91      displayName: 'Build Solution'
92      inputs:
93        solution: icu4c/source/allinone/allinone.sln
94        platform: x64
95        configuration: Release
96    - task: BatchScript@1
97      displayName: 'Run Tests (icucheck.bat)'
98      inputs:
99        filename: icu4c/source/allinone/icucheck.bat
100        arguments: 'x64 Release'
101    - task: PowerShell@2
102      displayName: 'PowerShell: Distrelease script (x64)'
103      inputs:
104        targetType: filePath
105        filePath: 'icu4c/packaging/distrelease.ps1'
106        arguments: '-arch x64'
107        workingDirectory: icu4c
108    - task: PublishBuildArtifacts@1
109      displayName: 'Publish x64 Artifacts: icu-windows.zip'
110      inputs:
111        PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
112        ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x64_Release'
113#-------------------------------------------------------------------------
114- job: ICU4C_MSVC_x86_Release_Distrelease
115  displayName: 'C: MSVC 32-bit Release (VS 2017) + Distrelease'
116  timeoutInMinutes: 30
117  pool:
118    vmImage: 'vs2017-win2016'
119    demands: 
120      - msbuild
121      - visualstudio
122      - Cmd
123  steps:
124    - checkout: self
125      lfs: true
126      fetchDepth: 1
127    - task: VSBuild@1
128      displayName: 'Build Solution'
129      inputs:
130        solution: icu4c/source/allinone/allinone.sln
131        platform: Win32
132        configuration: Release
133    - task: PowerShell@2
134      displayName: 'PowerShell: Distrelease script (x86)'
135      inputs:
136        targetType: filePath
137        filePath: 'icu4c/packaging/distrelease.ps1'
138        arguments: '-arch x86'
139        workingDirectory: icu4c
140    - task: PublishBuildArtifacts@1
141      displayName: 'Publish x86 Artifacts: icu-windows.zip'
142      inputs:
143        PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
144        ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x86_Release'
145#-------------------------------------------------------------------------
146- job: ICU4C_MSVC_x64_ARM32_ARM64_Release_Distrelease
147  displayName: 'C: MSVC x64 ARM32 ARM64 Release (VS 2017) + Distrelease ARM64'
148  timeoutInMinutes: 60
149  pool:
150    vmImage: 'vs2017-win2016'
151    demands: 
152      - msbuild
153      - visualstudio
154      - Cmd
155  steps:
156    - checkout: self
157      lfs: true
158      fetchDepth: 1
159    - task: VSBuild@1
160      displayName: 'Build Solution'
161      inputs:
162        solution: icu4c/source/allinone/allinone.sln
163        platform: x64
164        configuration: Release
165    - task: VSBuild@1
166      displayName: 'Build ARM32'
167      inputs:
168        solution: icu4c/source/allinone/allinone.sln
169        platform: ARM
170        configuration: Release
171    - task: VSBuild@1
172      displayName: 'Build ARM64'
173      inputs:
174        solution: icu4c/source/allinone/allinone.sln
175        platform: ARM64
176        configuration: Release
177    - task: PowerShell@2
178      displayName: 'PowerShell: Distrelease script (ARM64)'
179      inputs:
180        targetType: filePath
181        filePath: 'icu4c/packaging/distrelease.ps1'
182        arguments: '-arch ARM64'
183        workingDirectory: icu4c
184    - task: PublishBuildArtifacts@1
185      displayName: 'Publish ARM64 Artifacts: icu-windows.zip'
186      inputs:
187        PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
188        ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_ARM64_Release'
189#-------------------------------------------------------------------------
190- job: ICU4C_MSVC_x64_Release_DataFilter
191  displayName: 'C: MSVC 64-bit Release DataFilter (VS 2017)'
192  timeoutInMinutes: 30
193  pool:
194    vmImage: 'vs2017-win2016'
195    demands: 
196      - msbuild
197      - visualstudio
198      - Cmd
199  steps:
200    - checkout: self
201      lfs: true
202      fetchDepth: 1
203    - powershell: |
204        $filterPath = $Env:BUILD_SOURCESDIRECTORY + "\.ci-builds\data-filter.json"
205        $vstsCommandString = "vso[task.setvariable variable=ICU_DATA_FILTER_FILE]" + $filterPath
206        Write-Host "##$vstsCommandString"
207    - task: VSBuild@1
208      displayName: 'Build Solution with Data Filter'
209      inputs:
210        solution: icu4c/source/allinone/allinone.sln
211        platform: x64
212        configuration: Release
213        msbuildArgs: '/p:SkipUWP=true'
214#-------------------------------------------------------------------------
215- job: ICU4C_MSVC_x86_Debug
216  displayName: 'C: MSVC 32-bit Debug (VS 2017)'
217  timeoutInMinutes: 60
218  pool:
219    vmImage: 'vs2017-win2016'
220    demands: 
221      - msbuild
222      - visualstudio
223      - Cmd
224  steps:
225    - checkout: self
226      lfs: true
227      fetchDepth: 1
228    - task: VSBuild@1
229      displayName: 'Build Solution'
230      inputs:
231        solution: icu4c/source/allinone/allinone.sln
232        platform: Win32
233        configuration: Debug
234    - task: BatchScript@1
235      displayName: 'Run Tests (icucheck.bat)'
236      inputs:
237        filename: icu4c/source/allinone/icucheck.bat
238        arguments: 'x86 Debug'
239#-------------------------------------------------------------------------
240- job: ICU4C_MSYS2_GCC_x86_64_Release
241  displayName: 'C: MSYS2 GCC x86_64 Release'
242  timeoutInMinutes: 45
243  pool:
244    vmImage: 'vs2017-win2016'
245    demands:
246      - Cmd
247  steps:
248    - checkout: self
249      lfs: true
250      fetchDepth: 1
251    - script: |
252       choco install -y msys2
253       rem refreshenv
254      displayName: 'Install MSYS2'
255    - script: |
256       c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Hello World' && uname -a"
257       c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S mingw-w64-x86_64-toolchain"
258       c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S make"
259       exit
260      displayName: 'Install mingw-w64-x86_64-toolchain'
261    - script: |
262       set MSYSTEM=MINGW64
263       c:\tools\msys64\usr\bin\bash.exe -lc "cd $BUILD_SOURCESDIRECTORY && cd icu4c/source && ./runConfigureICU MinGW --prefix='/tmp/build-icu' && make -j2 check"
264      displayName: 'Build and Test'
265    - script: |
266       set MSYSTEM=MINGW64
267       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"
268      displayName: 'make install'
269    - script: |
270       set MSYSTEM=MINGW64
271       c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Run icuinfo from MSYS shell' && cd /tmp/build-icu/bin && ./icuinfo.exe"
272       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"
273      displayName: 'run icuinfo'
274#-------------------------------------------------------------------------
275- job: ICU4C_Clang_MacOSX_WarningsAsErrors
276  displayName: 'C: macOSX Clang WarningsAsErrors (Mojave 10.14)'
277  timeoutInMinutes: 30
278  pool:
279    vmImage: 'macOS-10.14'
280  steps:
281    - checkout: self
282      lfs: true
283      fetchDepth: 1
284    - script: |
285        export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU MacOSX && make -j2 tests
286      displayName: 'Build only (WarningsAsErrors)'
287      env:
288        CC: clang
289        CXX: clang++
290