-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
10caca3
commit 382417e
Showing
187 changed files
with
13,864 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
_ReSharper.* | ||
*.user | ||
*.suo | ||
bin | ||
obj | ||
/packages/* | ||
!/packages/repositories.config | ||
.vs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<OutputPath>bin\$(Configuration)\</OutputPath> | ||
<DebugSymbols>false</DebugSymbols> | ||
<SkipCopyBuildProduct>true</SkipCopyBuildProduct> | ||
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences> | ||
<TargetRuntime>None</TargetRuntime> | ||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">obj\</BaseIntermediateOutputPath> | ||
<BaseIntermediateOutputPath Condition=" !HasTrailingSlash('$(BaseIntermediateOutputPath)') ">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath> | ||
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath> | ||
<ProjectReferencesOutputPath Condition=" '$(ProjectReferencesOutputPath)' == '' ">$(IntermediateOutputPath)ProjectReferences</ProjectReferencesOutputPath> | ||
<ProjectReferencesOutputPath Condition=" !HasTrailingSlash('$(ProjectReferencesOutputPath)') ">$(ProjectReferencesOutputPath)\</ProjectReferencesOutputPath> | ||
<StageArtifacts Condition=" '$(StageArtifacts)' == '' ">true</StageArtifacts> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup> | ||
<DefineCommonItemSchemas>false</DefineCommonItemSchemas> | ||
<DefineCommonCapabilities>false</DefineCommonCapabilities> | ||
</PropertyGroup> | ||
|
||
<ProjectExtensions> | ||
<ProjectCapabilities> | ||
<DeploymentProject /> | ||
</ProjectCapabilities> | ||
</ProjectExtensions> | ||
|
||
<ItemDefinitionGroup> | ||
<Content> | ||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
</Content> | ||
<None> | ||
<CopyToOutputDirectory>Never</CopyToOutputDirectory> | ||
</None> | ||
<ProjectReference> | ||
<Private>false</Private> | ||
<Targets>Build</Targets> | ||
</ProjectReference> | ||
</ItemDefinitionGroup> | ||
|
||
<Target Name="CreateManifestResourceNames" /> | ||
|
||
<PropertyGroup> | ||
<StageArtifactsDependsOn> | ||
_GetDeploymentProjectContent; | ||
_CalculateContentOutputRelativePaths; | ||
_GetReferencedProjectsOutput; | ||
_CalculateArtifactStagingDirectory; | ||
_CopyOutputToArtifactStagingDirectory; | ||
</StageArtifactsDependsOn> | ||
</PropertyGroup> | ||
|
||
<Target Name="_CopyOutputToArtifactStagingDirectory"> | ||
<Copy SourceFiles="@(DeploymentProjectContentOutput)" DestinationFiles="$(ArtifactStagingDirectory)\$(MSBuildProjectName)%(RelativePath)" /> | ||
<Copy SourceFiles="@(BuildProjectReferencesOutput)" DestinationFiles="$(ArtifactStagingDirectory)%(ProjectName)\%(RecursiveDir)%(FileName)%(Extension)" /> | ||
</Target> | ||
|
||
<Target Name="_GetDeploymentProjectContent"> | ||
<MSBuild Projects="$(MSBuildProjectFile)" Targets="ContentFilesProjectOutputGroup"> | ||
<Output TaskParameter="TargetOutputs" ItemName="DeploymentProjectContentOutput" /> | ||
</MSBuild> | ||
</Target> | ||
|
||
<Target Name="_GetReferencedProjectsOutput"> | ||
<PropertyGroup> | ||
<MsBuildProperties>Configuration=$(Configuration);Platform=$(Platform)</MsBuildProperties> | ||
</PropertyGroup> | ||
|
||
<MSBuild Projects="@(ProjectReference)" | ||
BuildInParallel="$(BuildInParallel)" | ||
Properties="$(MsBuildProperties)" | ||
Targets="%(ProjectReference.Targets)" /> | ||
|
||
<ItemGroup> | ||
<BuildProjectReferencesOutput Include="%(ProjectReference.IncludeFilePath)"> | ||
<ProjectName>$([System.IO.Path]::GetFileNameWithoutExtension('%(ProjectReference.Identity)'))</ProjectName> | ||
</BuildProjectReferencesOutput> | ||
</ItemGroup> | ||
</Target> | ||
|
||
<Target Name="_CalculateArtifactStagingDirectory" Condition=" '$(ArtifactStagingDirectory)'=='' "> | ||
<PropertyGroup> | ||
<ArtifactStagingDirectory Condition=" '$(OutDir)'!='' ">$(OutDir)</ArtifactStagingDirectory> | ||
<ArtifactStagingDirectory Condition=" '$(ArtifactStagingDirectory)'=='' ">$(OutputPath)</ArtifactStagingDirectory> | ||
<ArtifactStagingDirectory Condition=" !HasTrailingSlash('$(ArtifactStagingDirectory)') ">$(ArtifactStagingDirectory)\</ArtifactStagingDirectory> | ||
<ArtifactStagingDirectory>$(ArtifactStagingDirectory)staging\</ArtifactStagingDirectory> | ||
<ArtifactStagingDirectory Condition=" '$(TF_Build)' == 'True' ">$(Build_StagingDirectory)</ArtifactStagingDirectory> | ||
</PropertyGroup> | ||
</Target> | ||
|
||
<!-- Appends each of the deployment project's content output files with metadata indicating its relative path from the deployment project's folder. --> | ||
<Target Name="_CalculateContentOutputRelativePaths" | ||
Outputs="%(DeploymentProjectContentOutput.Identity)"> | ||
<PropertyGroup> | ||
<_OriginalIdentity>%(DeploymentProjectContentOutput.Identity)</_OriginalIdentity> | ||
<_RelativePath>$(_OriginalIdentity.Replace('$(MSBuildProjectDirectory)', ''))</_RelativePath> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<DeploymentProjectContentOutput> | ||
<RelativePath>$(_RelativePath)</RelativePath> | ||
</DeploymentProjectContentOutput> | ||
</ItemGroup> | ||
</Target> | ||
|
||
<Target Name="CoreCompile" /> | ||
|
||
<PropertyGroup> | ||
<StageArtifactsAfterTargets Condition=" '$(StageArtifacts)' == 'true' "> | ||
PrepareForRun | ||
</StageArtifactsAfterTargets> | ||
</PropertyGroup> | ||
|
||
<Target Name="StageArtifacts" DependsOnTargets="$(StageArtifactsDependsOn)" AfterTargets="$(StageArtifactsAfterTargets)"/> | ||
|
||
<!-- Custom target to clean up local deployment staging files --> | ||
<Target Name="DeleteBinObjFolders" BeforeTargets="Clean"> | ||
<RemoveDir Directories="$(OutputPath)" /> | ||
<RemoveDir Directories="$(BaseIntermediateOutputPath)" /> | ||
</Target> | ||
</Project> |
105 changes: 105 additions & 0 deletions
105
SymbolSource.Azure/Scripts/Deploy-AzureResourceGroup.ps1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
#Requires -Version 3.0 | ||
|
||
Param( | ||
[string] [Parameter(Mandatory=$true)] $ResourceGroupLocation, | ||
[string] $ResourceGroupName = 'SymbolSource', | ||
[switch] $UploadArtifacts, | ||
[string] $StorageAccountName, | ||
[string] $StorageAccountResourceGroupName, | ||
[string] $StorageContainerName = $ResourceGroupName.ToLowerInvariant() + '-stageartifacts', | ||
[string] $TemplateFile = '..\Templates\WebSite.json', | ||
[string] $TemplateParametersFile = '..\Templates\WebSite.param.dev.json', | ||
[string] $ArtifactStagingDirectory = '..\bin\Debug\staging', | ||
[string] $AzCopyPath = '..\Tools\AzCopy.exe' | ||
) | ||
|
||
|
||
Import-Module Azure -ErrorAction SilentlyContinue | ||
|
||
try { | ||
[Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent("VSAzureTools-$UI$($host.name)".replace(" ","_"), "2.7") | ||
} catch { } | ||
|
||
Set-StrictMode -Version 3 | ||
|
||
$OptionalParameters = New-Object -TypeName Hashtable | ||
$TemplateFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateFile) | ||
$TemplateParametersFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFile) | ||
|
||
if ($UploadArtifacts) | ||
{ | ||
# Convert relative paths to absolute paths if needed | ||
$AzCopyPath = [System.IO.Path]::Combine($PSScriptRoot, $AzCopyPath) | ||
$ArtifactStagingDirectory = [System.IO.Path]::Combine($PSScriptRoot, $ArtifactStagingDirectory) | ||
|
||
Set-Variable ArtifactsLocationName '_artifactsLocation' -Option ReadOnly | ||
Set-Variable ArtifactsLocationSasTokenName '_artifactsLocationSasToken' -Option ReadOnly | ||
|
||
$OptionalParameters.Add($ArtifactsLocationName, $null) | ||
$OptionalParameters.Add($ArtifactsLocationSasTokenName, $null) | ||
|
||
# Parse the parameter file and update the values of artifacts location and artifacts location SAS token if they are present | ||
$JsonContent = Get-Content $TemplateParametersFile -Raw | ConvertFrom-Json | ||
$JsonParameters = $JsonContent | Get-Member -Type NoteProperty | Where-Object {$_.Name -eq "parameters"} | ||
|
||
if ($JsonParameters -eq $null) | ||
{ | ||
$JsonParameters = $JsonContent | ||
} | ||
else | ||
{ | ||
$JsonParameters = $JsonContent.parameters | ||
} | ||
|
||
$JsonParameters | Get-Member -Type NoteProperty | ForEach-Object { | ||
$ParameterValue = $JsonParameters | Select-Object -ExpandProperty $_.Name | ||
|
||
if ($_.Name -eq $ArtifactsLocationName -or $_.Name -eq $ArtifactsLocationSasTokenName) | ||
{ | ||
$OptionalParameters[$_.Name] = $ParameterValue.value | ||
} | ||
} | ||
|
||
if ($StorageAccountResourceGroupName) | ||
{ | ||
Switch-AzureMode AzureResourceManager | ||
$StorageAccountKey = (Get-AzureStorageAccountKey -ResourceGroupName $StorageAccountResourceGroupName -Name $StorageAccountName).Key1 | ||
} | ||
else | ||
{ | ||
Switch-AzureMode AzureServiceManagement | ||
$StorageAccountKey = (Get-AzureStorageKey -StorageAccountName $StorageAccountName).Primary | ||
} | ||
|
||
$StorageAccountContext = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey | ||
|
||
# Generate the value for artifacts location if it is not provided in the parameter file | ||
$ArtifactsLocation = $OptionalParameters[$ArtifactsLocationName] | ||
if ($ArtifactsLocation -eq $null) | ||
{ | ||
$ArtifactsLocation = $StorageAccountContext.BlobEndPoint + $StorageContainerName | ||
$OptionalParameters[$ArtifactsLocationName] = $ArtifactsLocation | ||
} | ||
|
||
# Use AzCopy to copy files from the local storage drop path to the storage account container | ||
& "$AzCopyPath" """$ArtifactStagingDirectory"" $ArtifactsLocation /DestKey:$StorageAccountKey /S /Y /Z:""$env:LocalAppData\Microsoft\Azure\AzCopy\$ResourceGroupName""" | ||
|
||
# Generate the value for artifacts location SAS token if it is not provided in the parameter file | ||
$ArtifactsLocationSasToken = $OptionalParameters[$ArtifactsLocationSasTokenName] | ||
if ($ArtifactsLocationSasToken -eq $null) | ||
{ | ||
# Create a SAS token for the storage container - this gives temporary read-only access to the container (defaults to 1 hour). | ||
$ArtifactsLocationSasToken = New-AzureStorageContainerSASToken -Container $StorageContainerName -Context $StorageAccountContext -Permission r | ||
$ArtifactsLocationSasToken = ConvertTo-SecureString $ArtifactsLocationSasToken -AsPlainText -Force | ||
$OptionalParameters[$ArtifactsLocationSasTokenName] = $ArtifactsLocationSasToken | ||
} | ||
} | ||
|
||
# Create or update the resource group using the specified template file and template parameters file | ||
Switch-AzureMode AzureResourceManager | ||
New-AzureResourceGroup -Name $ResourceGroupName ` | ||
-Location $ResourceGroupLocation ` | ||
-TemplateFile $TemplateFile ` | ||
-TemplateParameterFile $TemplateParametersFile ` | ||
@OptionalParameters ` | ||
-Force -Verbose |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<ItemGroup Label="ProjectConfigurations"> | ||
<ProjectConfiguration Include="Debug|AnyCPU"> | ||
<Configuration>Debug</Configuration> | ||
<Platform>AnyCPU</Platform> | ||
</ProjectConfiguration> | ||
<ProjectConfiguration Include="Release|AnyCPU"> | ||
<Configuration>Release</Configuration> | ||
<Platform>AnyCPU</Platform> | ||
</ProjectConfiguration> | ||
</ItemGroup> | ||
<PropertyGroup Label="Globals"> | ||
<ProjectGuid>fb924e5c-8264-4c2c-8ec9-636ead39584c</ProjectGuid> | ||
</PropertyGroup> | ||
<PropertyGroup> | ||
<TargetFrameworkIdentifier>Deployment</TargetFrameworkIdentifier> | ||
<TargetFrameworkVersion>1.0</TargetFrameworkVersion> | ||
<PrepareForBuildDependsOn> | ||
</PrepareForBuildDependsOn> | ||
</PropertyGroup> | ||
<Import Condition=" Exists('Deployment.targets') " Project="Deployment.targets" /> | ||
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" /> | ||
<!-- vertag<:>start tokens<:>maj.min --> | ||
<Import Condition=" Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Deployment\1.1\DeploymentProject.targets') " Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Deployment\1.1\DeploymentProject.targets" /> | ||
<!-- vertag<:>end --> | ||
<ItemGroup> | ||
<Folder Include="Scripts\" /> | ||
<Folder Include="Tools\" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="Deployment.targets"> | ||
<Visible>False</Visible> | ||
</None> | ||
<Content Include="Scripts\Deploy-AzureResourceGroup.ps1" /> | ||
<Content Include="Templates\WebSite.json" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="Tools\AzCopy.exe" /> | ||
<None Include="Tools\Microsoft.Data.Edm.dll"> | ||
<Visible>False</Visible> | ||
</None> | ||
<None Include="Tools\Microsoft.Data.OData.dll"> | ||
<Visible>False</Visible> | ||
</None> | ||
<None Include="Tools\Microsoft.Data.Services.Client.dll"> | ||
<Visible>False</Visible> | ||
</None> | ||
<None Include="Tools\Microsoft.WindowsAzure.Storage.dll"> | ||
<Visible>False</Visible> | ||
</None> | ||
<None Include="Tools\Microsoft.WindowsAzure.Storage.DataMovement.dll"> | ||
<Visible>False</Visible> | ||
</None> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<ProjectReference Include="..\SymbolSource.Server\SymbolSource.Server.csproj"> | ||
<Targets>Build;Package</Targets> | ||
<AdditionalProperties>PackageLocation=..\SymbolSource.Azure\$(ProjectReferencesOutputPath)\SymbolSource.Server\package.zip</AdditionalProperties> | ||
<IncludeFilePath>$(ProjectReferencesOutputPath)\SymbolSource.Server\package.zip</IncludeFilePath> | ||
</ProjectReference> | ||
</ItemGroup> | ||
<Target Name="GetReferenceAssemblyPaths" /> | ||
</Project> |
Oops, something went wrong.