Skip to content
This repository has been archived by the owner on Mar 22, 2022. It is now read-only.

Initial commit of Azure pipeline config #4

Merged
merged 16 commits into from
Jun 18, 2019
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,27 @@ MixedReality-WebRTC is currently available for Windows Desktop (Win32) and Windo

MixedReality-WebRTC is under active development. The current development branch is [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) and uses the [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) release of WebRTC.

### C++ library `Microsoft.MixedReality.WebRTC.Native.dll`

| Branch | WebRTC | Platform | Architecture | Build Status |
|---|---|---|---|---|
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows Win32 | x86 | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows Win32 | x86_64 | [![Build status](https://microsoft.visualstudio.com/Analog/_apis/build/status/internal/middleware/mixedreality-webrtc/mr-webrtc-cs)](https://microsoft.visualstudio.com/Analog/_build/latest?definitionId=40611) |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows Win32 | x86_64 | [![Build status](https://microsoft.visualstudio.com/Analog/_apis/build/status/internal/middleware/mixedreality-webrtc/mr-webrtc-cpp-win32-x64)](https://microsoft.visualstudio.com/Analog/_build/latest?definitionId=40615) |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows Win32 | ARM | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows Win32 | ARM64 | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows UWP | x86 | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows UWP | x86_64 | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows UWP | x86_64 | [![Build status](https://microsoft.visualstudio.com/Analog/_apis/build/status/internal/middleware/mixedreality-webrtc/mr-webrtc-cpp-uwp-x64)](https://microsoft.visualstudio.com/Analog/_build/latest?definitionId=40776) |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows UWP | ARM | - |
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | Windows UWP | ARM64 | - |

### C# Library `Microsoft.MixedReality.WebRTC.dll`

The C# library is platform and architecture independent (.NET Standard 2.0).

| Branch | WebRTC | Build Status |
|---|---|---|---|---|
| [`dev`](https://github.com/microsoft/MixedReality-WebRTC/tree/dev) | [m71](https://groups.google.com/forum/#!msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ) | [![Build status](https://microsoft.visualstudio.com/Analog/_apis/build/status/internal/middleware/mixedreality-webrtc/mr-webrtc-cs)](https://microsoft.visualstudio.com/Analog/_build/latest?definitionId=40611) |

## Getting Started

MixedReality-WebRTC is currently under development, and precompiled packages are not yet available. See the _Building MixedReality-WebRTC_ section below for compiling the libraries from sources.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<ProjectName>Microsoft.MixedReality.WebRTC.Native.UWP</ProjectName>
</PropertyGroup>
Expand Down Expand Up @@ -73,8 +73,8 @@
<PropertyGroup>
<GenerateManifest>false</GenerateManifest>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutDir>$(SolutionDir)bin\UWP\$(PlatformTarget)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\UWP\$(PlatformTarget)\$(Configuration)\</IntDir>
<OutDir>..\..\bin\UWP\$(PlatformTarget)\$(Configuration)\</OutDir>
djee-ms marked this conversation as resolved.
Show resolved Hide resolved
<IntDir>..\..\build\UWP\$(PlatformTarget)\$(Configuration)\</IntDir>
<TargetName>Microsoft.MixedReality.WebRTC.Native</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
Expand All @@ -84,7 +84,7 @@
<CompileAsWinRT>false</CompileAsWinRT>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalIncludeDirectories>include\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\abseil-cpp\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib-eventing\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\libyuv\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>include;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium\third_party\abseil-cpp;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib-eventing;$(WebRTCCoreRepoPath)webrtc\xplatform\libyuv\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ConformanceMode>false</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<ExceptionHandling>SyncCThrow</ExceptionHandling>
Expand Down Expand Up @@ -132,4 +132,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<ProjectGuid>{928899BC-F131-4343-A1AB-72F3A5787E41}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>MicrosoftMixedRealityToolkitNetworkingWebRtcNativeWin32</RootNamespace>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<ProjectName>Microsoft.MixedReality.WebRTC.Native.Win32</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Expand Down Expand Up @@ -72,8 +72,8 @@
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup>
<OutDir>$(SolutionDir)bin\Win32\$(PlatformTarget)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)build\Win32\$(PlatformTarget)\$(Configuration)\</IntDir>
<OutDir>..\..\bin\Win32\$(PlatformTarget)\$(Configuration)\</OutDir>
<IntDir>..\..\build\Win32\$(PlatformTarget)\$(Configuration)\</IntDir>
<TargetName>Microsoft.MixedReality.WebRTC.Native</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
Expand All @@ -99,7 +99,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;UNICODE;_WINDLL;MR_SHARING_WIN;WIN32;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING</PreprocessorDefinitions>
<AdditionalIncludeDirectories>include\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\abseil-cpp\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib-eventing\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\libyuv\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>include;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium\third_party\abseil-cpp;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib-eventing;$(WebRTCCoreRepoPath)webrtc\xplatform\libyuv\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
Expand All @@ -117,7 +117,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;UNICODE;_WINDLL;MR_SHARING_WIN;WIN32;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>include\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\abseil-cpp\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl\zsLib-eventing\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\libyuv\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>include;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\generated\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\sdk\windows\wrapper\override\cppwinrt;$(WebRTCCoreRepoPath)webrtc\xplatform\chromium\third_party\abseil-cpp\;$(WebRTCCoreRepoPath)webrtc\xplatform\webrtc\third_party\idl;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib;$(WebRTCCoreRepoPath)webrtc\xplatform\zsLib-eventing;$(WebRTCCoreRepoPath)webrtc\xplatform\libyuv\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp17</LanguageStandard>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
Expand Down Expand Up @@ -157,4 +157,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- This needs to go first, before Microsoft.Common.props is imported -->
<PropertyGroup>
<BaseIntermediateOutputPath>..\..\build\Microsoft.MixedReality.WebRTC\$(Platform)\$(Configuration)</BaseIntermediateOutputPath>
<OutputPath>..\..\bin\$(Platform)\$(Configuration)</OutputPath>
<BaseIntermediateOutputPath>..\..\build\Microsoft.MixedReality.WebRTC\$(Configuration)</BaseIntermediateOutputPath>
<OutputPath>..\..\bin\$(Configuration)</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>

Expand All @@ -21,7 +21,7 @@
</PropertyGroup>

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="..\..\tools\copy_unity_plugins.bat CS dummy $(Platform) $(Configuration)" />
<Exec Command="..\..\tools\copy_unity_plugins.bat CS dummy dummy $(Configuration)" />
</Target>

<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
Expand Down
21 changes: 21 additions & 0 deletions tools/ci/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# MixedReality-WebRTC build pipeline for CI

# Give a unique name to the build each time it runs
name: mr-webrtc-libwebrtc-$(SourceBranchName)-$(Date:yyyyMMdd)-$(Rev:.r)

jobs:
# - template: templates/libwebrtc.yaml
# parameters:
# platform: 'Win32'
# arch: 'x64'
# buildConfig: 'Release'
- template: templates/libwebrtc.yaml
parameters:
platform: 'UWP'
arch: 'x64'
buildConfig: 'Release'
# - template: templates/libwebrtc.yaml
# parameters:
# platform: 'UWP'
# arch: 'ARM'
# buildConfig: 'Release'
66 changes: 66 additions & 0 deletions tools/ci/templates/libwebrtc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# [TEMPLATE] Compile webrtc.lib

parameters:
platform: '' # Win32|UWP
arch: '' # x86|x64|ARM|ARM64
buildConfig: '' # Debug|Release

jobs:
- job: libwebrtc
timeoutInMinutes: 360
pool:
vmImage: 'vs2017-win2016' # Hosted VS2017
steps:
- checkout: self
submodules: recursive
- task: UsePythonVersion@0
displayName: 'Use Python 2.7.16 x64 for Google GN'
inputs:
versionSpec: 2.7.16
timeoutInMinutes: 5
- task: MSBuild@1
displayName: 'Build webrtc.lib (${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}})'
inputs:
solution: 'external/webrtc-uwp-sdk/webrtc/windows/projects/msvc/WebRtc.UWP.Native.Builder/WebRtc.UWP.Native.Builder.vcxproj'
msbuildVersion: '15.0'
msbuildArchitecture: x64
platform: ${{parameters.arch}}
configuration: ${{parameters.buildConfig}}
timeoutInMinutes: 90
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 # NuGetCommand@2
djee-ms marked this conversation as resolved.
Show resolved Hide resolved
displayName: 'Restore NuGet packages for Org.WebRtc'
inputs:
command: restore
restoreSolution: 'external/webrtc-uwp-sdk/webrtc/windows/projects/msvc/Org.WebRtc.Universal/packages.config'
restoreDirectory: ../../../solutions/packages
timeoutInMinutes: 10
- powershell: 'Get-ChildItem -Recurse | select FullName,Length | Format-Table -HideTableHeaders'
errorActionPreference: continue
displayName: '[DEBUG] List all files with sizes'
- task: MSBuild@1
displayName: 'Build Org.WebRTC WinRT wrappers (${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}})'
inputs:
solution: 'external/webrtc-uwp-sdk/webrtc/windows/projects/msvc/Org.WebRtc.Universal/Org.WebRtc.vcxproj'
msbuildVersion: '15.0'
msbuildArchitecture: x64
platform: ${{parameters.arch}}
configuration: ${{parameters.buildConfig}}
timeoutInMinutes: 180
- task: PublishPipelineArtifact@0
displayName: 'Publish webrtc.lib (${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}})'
inputs:
artifactName: 'webrtc.lib_${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}}'
targetPath: 'external/webrtc-uwp-sdk/webrtc/xplatform/webrtc/OUTPUT/webrtc/winuwp/${{parameters.arch}}/${{parameters.buildConfig}}/webrtc.lib'
timeoutInMinutes: 15
- task: PublishPipelineArtifact@0
displayName: 'Publish generated WinRT headers'
inputs:
artifactName: 'winrt_headers_${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}}'
targetPath: 'external/webrtc-uwp-sdk/webrtc/xplatform/webrtc/sdk/windows/wrapper/generated'
timeoutInMinutes: 15
- task: PublishPipelineArtifact@0
displayName: 'Publish WinRT wrappers (${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}})'
inputs:
artifactName: 'winrt_wrappers_${{parameters.platform}}-${{parameters.arch}}-${{parameters.buildConfig}}'
targetPath: 'external/webrtc-uwp-sdk/webrtc/windows/solutions/Build/Output/Org.WebRtc/${{parameters.buildConfig}}/${{parameters.arch}}'
timeoutInMinutes: 15
4 changes: 2 additions & 2 deletions tools/copy_unity_plugins.bat
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ if %1==CPP (
) else (
REM C# assemblies are AnyCPU (architecture-independent) - just need a single copy for all architectures
REM But the Unity Editor doesn't like DLLs in multiple directories, so copy them in Win32\x86_64 where it's looking
xcopy /Y /Q ..\..\bin\%3\%4\Microsoft.MixedReality.WebRTC.dll ..\..\libs\Microsoft.MixedReality.WebRTC.Unity\Assets\Plugins\Win32\x86_64\
xcopy /Y /Q ..\..\bin\%3\%4\Microsoft.MixedReality.WebRTC.pdb ..\..\libs\Microsoft.MixedReality.WebRTC.Unity\Assets\Plugins\Win32\x86_64\
xcopy /Y /Q ..\..\bin\%4\Microsoft.MixedReality.WebRTC.dll ..\..\libs\Microsoft.MixedReality.WebRTC.Unity\Assets\Plugins\Win32\x86_64\
xcopy /Y /Q ..\..\bin\%4\Microsoft.MixedReality.WebRTC.pdb ..\..\libs\Microsoft.MixedReality.WebRTC.Unity\Assets\Plugins\Win32\x86_64\
)