Merge pull request #93 from jwillemsen/jwi-azurepath
[MPC.git] / azure-pipelines.yml
blobd8d62c70cfae2f43423d68ded21b7aa6b376d52f
1 variables:
2    DOC_ROOT: $(Build.SourcesDirectory)/ACE_TAO
3    ACE_ROOT: $(DOC_ROOT)/ACE
4    MPC_ROOT: $(Build.SourcesDirectory)
5    TAO_ROOT: $(DOC_ROOT)/TAO
6    CIAO_ROOT: $(DOC_ROOT)/CIAO
7    DAnCE_ROOT: $(Build.SourcesDirectory)/DAnCE
8    DDS_ROOT: $(Build.SourcesDirectory)/DDS
9    system.prefergit: true
11 schedules:
12 - cron: "0 7 * * SUN"
13   displayName: Weekly Sunday
14   branches:
15     include:
16     - master
17   always: true
19 resources:
20 - repo: self
21   fetchDepth: 1
23 jobs:
24 - job: VisualStudio2019
25   timeoutInMinutes: 90
26   pool:
27     vmImage: windows-2019
28   strategy:
29     matrix:
30       Debug64:
31         BuildPlatform: x64
32         BuildConfiguration: Debug
33         vcpkgarch: x64-windows
34         vcpkglibdir: debug\lib
35         vcpkgpackages: openssl xerces-c
36       Debug32:
37         BuildPlatform: Win32
38         BuildConfiguration: Debug
39         vcpkgarch: x86-windows
40         vcpkglibdir: debug\lib
41         vcpkgpackages: openssl xerces-c
42   variables:
43     VCPKG_ROOT: $(Build.SourcesDirectory)\vcpkg
44     XERCESC_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
45     XERCESC_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
46     SSL_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
47     SSL_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
48   steps:
49   - powershell: |
50       git clone -q --depth 1 git://github.com/Microsoft/vcpkg.git $(VCPKG_ROOT)
51       $(VCPKG_ROOT)\bootstrap-vcpkg.bat
52       $(VCPKG_ROOT)\vcpkg install --recurse --triplet $(vcpkgarch) $(vcpkgpackages)
53     displayName: Install additional packages using vcpkg
54   - powershell: |
55       git clone -q --depth 1 git://github.com/DOCGroup/ACE_TAO.git $(Build.SourcesDirectory)/ACE_TAO
56       git clone -q --depth 1 git://github.com/DOCGroup/DAnCE.git $(DAnCE_ROOT)
57       git clone -q --depth 1 git://github.com/DOCGroup/CIAO.git $(CIAO_ROOT)
58     displayName: git clone dependent repositories
59   - powershell: |
60       '#include "ace/config-win32.h"' > $(ACE_ROOT)\ace\config.h
61     displayName: Create config.h file
62   - powershell: |
63       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
64       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
65     displayName: Create default.features file
66   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2019 $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc -workers 4
67     displayName: Run script mwc.pl on $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc
68   - task: VSBuild@1
69     displayName: Build solution $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
70     inputs:
71       solution: $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
72       platform: $(BuildPlatform)
73       configuration: $(BuildConfiguration)
74       maximumCpuCount: true
76 - job: VisualStudio2017
77   timeoutInMinutes: 90
78   pool:
79     vmImage: vs2017-win2016
80   strategy:
81     matrix:
82       Release64:
83         BuildPlatform: x64
84         BuildConfiguration: Release
85         vcpkgarch: x64-windows
86         vcpkglibdir: lib
87         vcpkgpackages: openssl xerces-c
88   variables:
89     VCPKG_ROOT: $(Build.SourcesDirectory)\vcpkg
90     XERCESC_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
91     XERCESC_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
92     SSL_INCDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\include
93     SSL_LIBDIR: $(VCPKG_ROOT)\installed\$(vcpkgarch)\$(vcpkglibdir)
94   steps:
95   - powershell: |
96       git clone -q --depth 1 git://github.com/Microsoft/vcpkg.git $(VCPKG_ROOT)
97       $(VCPKG_ROOT)\bootstrap-vcpkg.bat
98       $(VCPKG_ROOT)\vcpkg install --recurse --triplet $(vcpkgarch) $(vcpkgpackages)
99     displayName: Install additional packages using vcpkg
100   - powershell: |
101       git clone -q --depth 1 git://github.com/DOCGroup/ACE_TAO.git $(Build.SourcesDirectory)/ACE_TAO
102       git clone -q --depth 1 git://github.com/DOCGroup/DAnCE.git $(DAnCE_ROOT)
103       git clone -q --depth 1 git://github.com/DOCGroup/CIAO.git $(CIAO_ROOT)
104     displayName: git clone dependent repositories
105   - powershell: |
106       '#include "ace/config-win32.h"' > $(ACE_ROOT)\ace\config.h
107     displayName: Create config.h file
108   - powershell: |
109       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
110       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
111     displayName: Create default.features file
112   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vs2017 $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc -workers 4
113     displayName: Run script mwc.pl on $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc
114   - task: VSBuild@1
115     displayName: Build solution $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
116     inputs:
117       solution: $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
118       platform: $(BuildPlatform)
119       configuration: $(BuildConfiguration)
120       maximumCpuCount: true
122 - job: VisualStudio2015
123   timeoutInMinutes: 90
124   pool:
125     vmImage: vs2015-win2012r2
126   strategy:
127     matrix:
128       Release64:
129         BuildPlatform: x64
130         BuildConfiguration: Release
131         vcpkgarch: x64-windows
132         vcpkglibdir: lib
133   variables:
134     VCPKG_ROOT: $(Build.SourcesDirectory)\vcpkg
135     XERCESCROOT: $(Build.SourcesDirectory)\vcpkg\packages\xerces-c_$(vcpkgarch)
136     SSL_ROOT: $(Build.SourcesDirectory)\vcpkg\packages\openssl-windows_$(vcpkgarch)
137     SSL_LIBDIR: $(SSL_ROOT)\$(vcpkglibdir)
138     XERCESC_LIBDIR: $(XERCESCROOT)\$(vcpkglibdir)
139   steps:
140   - powershell: |
141       git clone --depth 1 git://github.com/Microsoft/vcpkg.git $(VCPKG_ROOT)
142       $(VCPKG_ROOT)\bootstrap-vcpkg.bat
143       $(VCPKG_ROOT)\vcpkg.exe install --recurse --triplet $(vcpkgarch) openssl xerces-c
144     displayName: vcpkg
145   - powershell: |
146       git clone -q --depth 1 git://github.com/DOCGroup/ACE_TAO.git $(Build.SourcesDirectory)/ACE_TAO
147       git clone -q --depth 1 git://github.com/DOCGroup/DAnCE.git $(DAnCE_ROOT)
148       git clone -q --depth 1 git://github.com/DOCGroup/CIAO.git $(CIAO_ROOT)
149     displayName: git clone dependent repositories
150   - powershell: |
151       '#include "ace/config-win32.h"' > $(ACE_ROOT)\ace\config.h
152     displayName: Create config.h file
153   - powershell: |
154       echo "xerces3=1" | out-file -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
155       echo "ssl=1" | out-file -append -encoding ASCII $(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
156     displayName: Create default.features file
157   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type vc14 $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc -workers 4
158     displayName: Run script mwc.pl on $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc
159   - task: VSBuild@1
160     displayName: Build solution $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
161     inputs:
162       solution: $(CIAO_ROOT)/CIAO_TAO_DAnCE.sln
163       platform: $(BuildPlatform)
164       configuration: $(BuildConfiguration)
165       maximumCpuCount: true
167 - job: Linux
168   pool:
169     vmImage: ubuntu-latest
170   strategy:
171     matrix:
172       GCC9:
173         CC: gcc-9
174         CXX: g++-9
175         PackageDeps: g++-9
176         platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
177   steps:
178   - script: |
179       wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
180       sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ $(Repo) main"
181     displayName: Add repository ($(Repo))
182     condition: and(succeeded(), ne(variables['Repo'], ''))
183   - script: |
184       sudo apt-get --yes update
185       sudo apt-get --yes install libxerces-c-dev libssl-dev $(PackageDeps)
186     displayName: install system package dependencies ($(PackageDeps))
187   - powershell: |
188       git clone -q --depth 1 git://github.com/DOCGroup/ACE_TAO.git $(Build.SourcesDirectory)/ACE_TAO
189       git clone -q --depth 1 git://github.com/DOCGroup/DAnCE.git $(DAnCE_ROOT)
190       git clone -q --depth 1 git://github.com/DOCGroup/CIAO.git $(CIAO_ROOT)
191       git clone -q --depth 1 git://github.com/objectcomputing/OpenDDS $(DDS_ROOT)
192   - powershell: |
193       '#include "ace/config-linux.h"' > $(ACE_ROOT)/ace/config.h
194     displayName: Create config.h file
195   - powershell: |
196       'xerces3=1' > $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
197       'dds4ccm_opendds=1' >> $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
198       'dds_suppress_anys=0' >> $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
199       'ssl=1' >> $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
200     displayName: Create default.features file
201   - powershell: |
202       'c++11=1' > $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
203       'xerces3=1' >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
204       'ssl=1' >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
205       'dds4ccm_opendds=1' >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
206       "$(platform_file)" >> $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
207     displayName: Create platform_macros file
208   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(CIAO_ROOT)/CIAO_TAO_DAnCE_OpenDDS.mwc -workers 4
209     displayName: Run mwc.pl on $(CIAO_ROOT)/CIAO_TAO_DAnCE_OpenDDS.mwc
210   - bash: make -j 6 -C $(CIAO_ROOT)
211     displayName: Build project
213 - job: MacOSX
214   pool:
215     vmImage: macOS-latest
216   steps:
217   - powershell: |
218       git clone -q --depth 1 git://github.com/DOCGroup/ACE_TAO.git $(Build.SourcesDirectory)/ACE_TAO
219       git clone -q --depth 1 git://github.com/DOCGroup/CIAO.git $(CIAO_ROOT)
220       git clone -q --depth 1 git://github.com/DOCGroup/DAnCE.git $(DAnCE_ROOT)
221   - powershell: |
222       '#include "ace/config-macosx.h"' > $(ACE_ROOT)/ace/config.h
223     displayName: Create config.h file
224   - powershell: |
225       'include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU' > $(ACE_ROOT)/include/makeinclude/platform_macros.GNU;
226     displayName: Create platform_macros file
227   - powershell: perl $(ACE_ROOT)/bin/mwc.pl -type gnuace $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc -workers 4
228     displayName: Run mwc.pl on $(CIAO_ROOT)/CIAO_TAO_DAnCE.mwc
229   - bash: make -j 6 -C $(CIAO_ROOT)
230     displayName: Build project