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