Merge pull request #894 from mitza-oci/master
[ACE_TAO.git] / azure-pipelines.yml
blobffdc04c12561bbe21683f93e1e59bf6f21d04960
1 variables:
2    ACE_ROOT: $(Build.SourcesDirectory)/ACE
3    TAO_ROOT: $(Build.SourcesDirectory)/TAO
4    MPC_ROOT: $(Build.SourcesDirectory)/ACE/MPC
5    system.prefergit: true
7 resources:
8 - repo: self
9   fetchDepth: 1
11 jobs:
12 - job: VisualStudio2019
13   timeoutInMinutes: 120
14   pool:
15     vmImage: windows-2019
16   strategy:
17     matrix:
18       WChar:
19         BuildPlatform: x64
20         BuildConfiguration: Debug
21         vcpkgarch: x64-windows
22         vcpkglibdir: debug\lib
23         vcpkgpackages: 'openssl xerces-c[xmlch_wchar]'
24         OptionalFeatures: uses_wchar=1
25       Debug64:
26         BuildPlatform: x64
27         BuildConfiguration: Debug
28         vcpkgarch: x64-windows
29         vcpkglibdir: debug\lib
30         vcpkgpackages: openssl xerces-c
31       Release64:
32         BuildPlatform: x64
33         BuildConfiguration: Release
34         vcpkgarch: x64-windows
35         vcpkglibdir: lib
36         vcpkgpackages: openssl xerces-c
37       Debug32:
38         BuildPlatform: Win32
39         BuildConfiguration: Debug
40         vcpkgarch: x86-windows
41         vcpkglibdir: debug\lib
42         vcpkgpackages: openssl xerces-c
43       Release32:
44         BuildPlatform: Win32
45         BuildConfiguration: Release
46         vcpkgarch: x86-windows
47         vcpkglibdir: lib
48         vcpkgpackages: openssl xerces-c
49   variables:
50     VCPKG_ROOT: $(Build.SourcesDirectory)\vcpkg
51     XERCESC_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
52     XERCESC_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
53     SSL_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
54     SSL_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
55   steps:
56   - powershell: |
57       git clone -q --depth 1 git://github.com/Microsoft/vcpkg.git $(VCPKG_ROOT)
58       $(VCPKG_ROOT)\bootstrap-vcpkg.bat
59       $(VCPKG_ROOT)\vcpkg install --recurse --triplet $(vcpkgarch) $(vcpkgpackages)
60     displayName: Install additional packages using vcpkg
61   - powershell: |
62       '#include "ace/config-win32.h"' > $(ACE_ROOT)/ace/config.h
63     displayName: Create config.h file
64   - powershell: |
65       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
66       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
67       echo "versioned_namespace=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
68     displayName: Create default.features file
69   - powershell: |
70       echo $(OptionalFeatures) | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
71     displayName: Add optional features ($(OptionalFeatures))
72     condition: and(succeeded(), ne(variables['OptionalFeatures'], ''))
73   - powershell: git clone -q --depth 1 git://github.com/DOCGroup/MPC.git $(MPC_ROOT)
74     displayName: git clone MPC
75   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2019 $(TAO_ROOT)/TAO_ACE.mwc -workers 4
76     displayName: Run script mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
77   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2019 $(ACE_ROOT)/tests/tests.mwc -workers 4
78     displayName: Run script mwc.pl on $(ACE_ROOT)/tests/tests.mwc
79   - task: VSBuild@1
80     displayName: Build solution TAO/TAO_ACE.sln
81     inputs:
82       solution: TAO/TAO_ACE.sln
83       platform: $(BuildPlatform)
84       configuration: $(BuildConfiguration)
85       maximumCpuCount: true
86   - task: VSBuild@1
87     displayName: Build solution ACE/tests/tests.sln
88     inputs:
89       solution: ACE/tests/tests.sln
90       platform: $(BuildPlatform)
91       configuration: $(BuildConfiguration)
92       maximumCpuCount: true
94 - job: VisualStudio2017
95   timeoutInMinutes: 120
96   pool:
97     vmImage: vs2017-win2016
98   strategy:
99     matrix:
100       WChar:
101         BuildPlatform: x64
102         BuildConfiguration: Debug
103         vcpkgarch: x64-windows
104         vcpkglibdir: debug\lib
105         vcpkgpackages: 'openssl xerces-c[xmlch_wchar]'
106         OptionalFeatures: uses_wchar=1
107       Debug64:
108         BuildPlatform: x64
109         BuildConfiguration: Debug
110         vcpkgarch: x64-windows
111         vcpkglibdir: debug\lib
112         vcpkgpackages: openssl xerces-c
113       Release64:
114         BuildPlatform: x64
115         BuildConfiguration: Release
116         vcpkgarch: x64-windows
117         vcpkglibdir: lib
118         vcpkgpackages: openssl xerces-c
119   variables:
120     VCPKG_ROOT: $(Build.SourcesDirectory)\vcpkg
121     XERCESC_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
122     XERCESC_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
123     SSL_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
124     SSL_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
125   steps:
126   - powershell: |
127       git clone --depth 1 git://github.com/Microsoft/vcpkg.git $(VCPKG_ROOT)
128       $(VCPKG_ROOT)\bootstrap-vcpkg.bat
129       $(VCPKG_ROOT)\vcpkg install --recurse --triplet $(vcpkgarch) $(vcpkgpackages)
130     displayName: Install additional packages using vcpkg
131   - powershell: |
132       '#include "ace/config-win32.h"' > $(ACE_ROOT)/ace/config.h
133     displayName: Create config.h file
134   - powershell: |
135       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
136       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
137       echo "versioned_namespace=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
138     displayName: Create default.features file
139   - powershell: |
140       echo $(OptionalFeatures) | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
141     displayName: Add optional features ($(OptionalFeatures))
142     condition: and(succeeded(), ne(variables['OptionalFeatures'], ''))
143   - powershell: git clone --depth 1 git://github.com/DOCGroup/MPC.git $(MPC_ROOT)
144     displayName: git clone MPC
145   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2017 $(TAO_ROOT)/TAO_ACE.mwc -workers 4
146     displayName: Run script mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
147   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2017 $(ACE_ROOT)/tests/tests.mwc -workers 4
148     displayName: Run script mwc.pl on $(ACE_ROOT)/tests/tests.mwc
149   - task: VSBuild@1
150     displayName: Build solution TAO/TAO_ACE.sln
151     inputs:
152       solution: TAO/TAO_ACE.sln
153       platform: $(BuildPlatform)
154       configuration: $(BuildConfiguration)
155       maximumCpuCount: true
156   - task: VSBuild@1
157     displayName: Build solution ACE/tests/tests.sln
158     inputs:
159       solution: ACE/tests/tests.sln
160       platform: $(BuildPlatform)
161       configuration: $(BuildConfiguration)
162       maximumCpuCount: true
164 - job: VisualStudio2015
165   timeoutInMinutes: 90
166   pool:
167     vmImage: vs2015-win2012r2
168   strategy:
169     matrix:
170       Debug64:
171         BuildPlatform: x64
172         BuildConfiguration: Debug
173         vcpkgarch: x64-windows
174         vcpkglibdir: debug\lib
175       Release64:
176         BuildPlatform: x64
177         BuildConfiguration: Release
178         vcpkgarch: x64-windows
179         vcpkglibdir: lib
180   variables:
181     XERCESCROOT: $(Build.SourcesDirectory)\vcpkg\packages\xerces-c_$(vcpkgarch)
182     SSL_ROOT: $(Build.SourcesDirectory)\vcpkg\packages\openssl-windows_$(vcpkgarch)
183     SSL_LIBDIR: $(SSL_ROOT)\$(vcpkglibdir)
184     XERCESC_LIBDIR: $(XERCESCROOT)\$(vcpkglibdir)
185   steps:
186   - powershell: |
187       git clone --depth 1 git://github.com/Microsoft/vcpkg.git $(Build.SourcesDirectory)\vcpkg
188       .\vcpkg\bootstrap-vcpkg.bat
189       .\vcpkg\vcpkg.exe install --recurse --triplet $(vcpkgarch) openssl xerces-c
190     displayName: vcpkg
191   - powershell: |
192       '#include "ace/config-win32.h"' > $(ACE_ROOT)/ace/config.h
193     displayName: Create config.h file
194   - powershell: |
195       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
196       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
197       echo "versioned_namespace=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
198     displayName: Create default.features file
199   - powershell: git clone --depth 1 git://github.com/DOCGroup/MPC.git $(MPC_ROOT)
200     displayName: git clone MPC
201   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vc14 $(TAO_ROOT)/TAO_ACE.mwc -workers 4
202     displayName: Run script mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
203   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vc14 $(ACE_ROOT)/tests/tests.mwc -workers 4
204     displayName: Run script mwc.pl on $(ACE_ROOT)/tests/tests.mwc
205   - task: VSBuild@1
206     displayName: Build solution TAO\TAO_ACE.sln
207     inputs:
208       solution: TAO\TAO_ACE.sln
209       platform: $(BuildPlatform)
210       configuration: $(BuildConfiguration)
211       maximumCpuCount: true
212   - task: VSBuild@1
213     displayName: Build solution ACE\tests\tests.sln
214     inputs:
215       solution: ACE\tests\tests.sln
216       platform: $(BuildPlatform)
217       configuration: $(BuildConfiguration)
218       maximumCpuCount: true
220 - job: Linux
221   timeoutInMinutes: 90
222   pool:
223     vmImage: ubuntu-16.04
224   strategy:
225     matrix:
226       GCC4:
227         CC: gcc
228         CXX: g++
229         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
230       GCC6:
231         CC: gcc-6
232         CXX: g++-6
233         PackageDeps: g++-6
234         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
235       GCC7:
236         CC: gcc-7
237         CXX: g++-7
238         PackageDeps: g++-7
239         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
240       GCC8:
241         CC: gcc-8
242         CXX: g++-8
243         PackageDeps: g++-8
244         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
245       CLANG5:
246         CC: clang-5.0
247         CXX: clang++-5.0
248         PackageDeps: clang-5.0
249         Repo: llvm-toolchain-$(lsb_release -cs)-5.0
250         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
251       CLANG6:
252         CC: clang-6.0
253         CXX: clang++-6.0
254         PackageDeps: clang-6.0
255         Repo: llvm-toolchain-$(lsb_release -cs)-6.0
256         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
257       CLANG7:
258         CC: clang-7
259         CXX: clang++-7
260         PackageDeps: clang-7
261         Repo: llvm-toolchain-$(lsb_release -cs)-7
262         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
263       CLANG8:
264         CC: clang-8
265         CXX: clang++-8
266         PackageDeps: clang-8
267         Repo: llvm-toolchain-$(lsb_release -cs)-8
268         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU
269   steps:
270   - script: |
271       wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
272       sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ $(Repo) main"
273     displayName: Add repository ($(Repo))
274     condition: and(succeeded(), ne(variables['Repo'], ''))
275   - script: |
276       sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
277       sudo apt-get --yes update
278       sudo apt-get --yes install libxerces-c-dev libssl-dev $(PackageDeps)
279     displayName: install system package dependencies
280   - powershell: |
281       '#include "ace/config-linux.h"' > $(ACE_ROOT)/ace/config.h
282     displayName: Create config.h file
283   - powershell: |
284       'xerces3=1' > $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
285       'ssl=1' >> $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
286       'versioned_namespace=1' >> $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
287     displayName: Create default.features file
288   - powershell: |
289       'xerces3=1' > $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
290       'ssl=1' >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
291       "$(platform_file)" >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
292     displayName: Create platform_macros file
293   - powershell: git clone --depth 1 git://github.com/DOCGroup/MPC.git $(MPC_ROOT)
294     displayName: git clone MPC
295   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(TAO_ROOT)/TAO_ACE.mwc -workers 4
296     displayName: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
297   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(ACE_ROOT)/tests/tests.mwc -workers 4
298     displayName: Run mwc.pl on $(ACE_ROOT)/tests/tests.mwc
299   - bash: make -j 6 -C TAO
300     displayName: Build TAO project
301   - bash: make -j 6 -C ACE/tests
302     displayName: Build tests project
304 - job: MacOSX
305   timeoutInMinutes: 90
306   pool:
307     vmImage: macOS-10.13
308   steps:
309   - powershell: |
310       '#include "ace/config-macosx.h"' > $(ACE_ROOT)/ace/config.h
311     displayName: Create config.h file
312   - powershell: |
313       'include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU' > $(ACE_ROOT)/include/makeinclude/platform_macros.GNU;
314     displayName: Create platform_macros file
315   - powershell: git clone --depth 1 git://github.com/DOCGroup/MPC.git $(MPC_ROOT)
316     displayName: git clone MPC
317   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(TAO_ROOT)/TAO_ACE.mwc -workers 4
318     displayName: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc
319   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(ACE_ROOT)/tests/tests.mwc -workers 4
320     displayName: Run mwc.pl on $(ACE_ROOT)/tests/tests.mwc
321   - bash: make -j 6 -C TAO
322     displayName: Build TAO project
323   - bash: make -j 6 -C ACE/tests
324     displayName: Build tests project