Add a build definition for compiling Universe in VSTS
This commit is contained in:
parent
b67a141263
commit
28d4064cba
|
|
@ -0,0 +1,193 @@
|
|||
phases:
|
||||
- phase: Windows
|
||||
queue:
|
||||
name: DotNetCore-Windows
|
||||
timeoutInMinutes: 120
|
||||
matrix:
|
||||
Release:
|
||||
BuildConfiguration: Release
|
||||
# see https://github.com/dotnet/core-eng/issues/4053
|
||||
demands: in(agent.name, 'DDVSOSWINAGE086', 'DDVSOSWINAGE087')
|
||||
variables:
|
||||
CI: true
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
displayName: Install Node 10.x
|
||||
inputs:
|
||||
versionSpec: 10.x
|
||||
# TODO: configure build.cmd to build both x64 and x86 in one invocation
|
||||
# TODO build.cmd -ci
|
||||
- script: build.cmd /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:Build /t:BuildSharedFx /p:SharedFxRID=win-x64 /t:BuildFallbackArchive
|
||||
displayName: Build NuGet packages and win-x64 runtime
|
||||
- script: build.cmd /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:BuildSharedFx /p:SharedFxRID=win-x86
|
||||
displayName: Build win-x86 runtime
|
||||
- powershell: >
|
||||
src/Installers/Windows/clone_and_build_ancm.ps1
|
||||
-GitCredential '$(dn-bot-devdiv-build-rw-code-rw)'
|
||||
-Config $(BuildConfiguration)
|
||||
-BuildNumber $(Build.BuildNumber)
|
||||
displayName: Build ANCM installers
|
||||
# TODO: configure harvesting to run as a part of build.cmd
|
||||
- powershell: >
|
||||
src/Installers/Windows/build.ps1
|
||||
-x64 artifacts/assets/Runtime/2.2.0-preview1-$(Build.BuildNumber)/aspnetcore-runtime-internal-2.2.0-preview1-$(Build.BuildNumber)-win-x64.zip
|
||||
-x86 artifacts/assets/Runtime/2.2.0-preview1-$(Build.BuildNumber)/aspnetcore-runtime-internal-2.2.0-preview1-$(Build.BuildNumber)-win-x86.zip
|
||||
-Config $(BuildConfiguration)
|
||||
-BuildNumber $(Build.BuildNumber)
|
||||
displayName: Build Windows installers
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish test results
|
||||
condition: always()
|
||||
inputs:
|
||||
testRunner: vstest
|
||||
testResultsFiles: 'artifacts/logs/**/*.trx'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload artifacts
|
||||
condition: eq(variables['system.pullrequest.isfork'], false)
|
||||
inputs:
|
||||
pathtoPublish: ./artifacts/
|
||||
artifactName: artifacts-Windows-Release
|
||||
artifactType: Container
|
||||
|
||||
- phase: macOS
|
||||
dependsOn: Windows
|
||||
queue:
|
||||
name: Hosted macOS Preview
|
||||
matrix:
|
||||
Release:
|
||||
BuildConfiguration: Release
|
||||
variables:
|
||||
CI: true
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
steps:
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifacts
|
||||
inputs:
|
||||
artifactName: artifacts-Windows-Release
|
||||
downloadPath: $(Build.SourcesDirectory)/.deps
|
||||
itemPattern: '**/*.nupkg'
|
||||
# Workaround https://github.com/Microsoft/vsts-tasks/issues/6739
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy package assets to correct folder
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/.deps/artifacts-Windows-Release
|
||||
targetFolder: $(Build.SourcesDirectory)/.deps
|
||||
- script: >
|
||||
./build.sh
|
||||
--ci
|
||||
/t:Prepare
|
||||
/t:Restore
|
||||
/t:GeneratePropsFiles
|
||||
/t:BuildSharedFx
|
||||
/p:SharedFxRID=osx-x64
|
||||
/p:BuildNumber=$(Build.BuildNumber)
|
||||
displayName: Build osx-x64 runtime
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish test results
|
||||
condition: always()
|
||||
inputs:
|
||||
testRunner: vstest
|
||||
testResultsFiles: 'artifacts/logs/**/*.trx'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload artifacts
|
||||
condition: eq(variables['system.pullrequest.isfork'], false)
|
||||
inputs:
|
||||
pathtoPublish: ./artifacts/
|
||||
artifactName: artifacts-macOS-Release
|
||||
artifactType: Container
|
||||
|
||||
- phase: Linux
|
||||
dependsOn:
|
||||
- Windows
|
||||
- macOS
|
||||
queue:
|
||||
name: DotNetCore-Linux
|
||||
matrix:
|
||||
Release:
|
||||
BuildConfiguration: Release
|
||||
variables:
|
||||
CI: true
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
steps:
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifacts
|
||||
inputs:
|
||||
artifactName: artifacts-Windows-Release
|
||||
downloadPath: $(Build.SourcesDirectory)/.deps
|
||||
itemPattern: '**/*.nupkg'
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Windows artifacts
|
||||
inputs:
|
||||
artifactName: artifacts-Windows-Release
|
||||
downloadPath: $(Build.SourcesDirectory)/.r
|
||||
itemPattern: '**/aspnetcore-runtime-*'
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download macOS artifacts
|
||||
inputs:
|
||||
artifactName: artifacts-macOS-Release
|
||||
downloadPath: $(Build.SourcesDirectory)/.r
|
||||
itemPattern: '**/aspnetcore-runtime-*'
|
||||
# Workaround https://github.com/Microsoft/vsts-tasks/issues/6739
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy package assets to correct folder
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/.deps/artifacts-Windows-Release
|
||||
targetFolder: $(Build.SourcesDirectory)/.deps
|
||||
# TODO: Make the cumulative zips build in their own step
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy package assets to correct folder
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/.r/artifacts-Windows-Release
|
||||
targetFolder: $(Build.SourcesDirectory)/artifacts/
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy package assets to correct folder
|
||||
inputs:
|
||||
sourceFolder: $(Build.SourcesDirectory)/.r/artifacts-macOS-Release
|
||||
targetFolder: $(Build.SourcesDirectory)/artifacts/
|
||||
- script: >
|
||||
./build.sh
|
||||
--ci
|
||||
/t:Prepare
|
||||
/t:Restore
|
||||
/t:GeneratePropsFiles
|
||||
/t:BuildSharedFx
|
||||
/p:SharedFxRID=linux-x64
|
||||
/p:BuildNumber=$(Build.BuildNumber)
|
||||
displayName: Build linux-x64 runtime
|
||||
- script: >
|
||||
./build.sh
|
||||
--ci
|
||||
/t:BuildSharedFx
|
||||
/p:SharedFxRID=linux-arm
|
||||
/p:BuildNumber=$(Build.BuildNumber)
|
||||
displayName: Build linux-arm runtime
|
||||
- script: >
|
||||
./dockerbuild.sh
|
||||
alpine
|
||||
/t:Prepare
|
||||
/t:GeneratePropsFiles
|
||||
/t:BuildSharedFx
|
||||
/p:SharedFxRID=linux-musl-x64
|
||||
/p:BuildNumber=$(Build.BuildNumber)
|
||||
displayName: Build linux-musl-x64 runtime
|
||||
# TODO: configure installers to run in one build.sh invocation
|
||||
- script: >
|
||||
./build.sh
|
||||
--ci
|
||||
/t:BuildInstallers
|
||||
/p:_SharedFxSourceDir=$(Build.SourcesDirectory)/artifacts/assets/Runtime/2.2.0-preview1-$(Build.BuildNumber)/
|
||||
displayName: Build linux installers
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish test results
|
||||
condition: always()
|
||||
inputs:
|
||||
testRunner: vstest
|
||||
testResultsFiles: 'artifacts/logs/**/*.trx'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload artifacts
|
||||
condition: eq(variables['system.pullrequest.isfork'], false)
|
||||
inputs:
|
||||
pathtoPublish: ./artifacts/
|
||||
artifactName: artifacts-Linux-Release
|
||||
artifactType: Container
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<!-- directories -->
|
||||
<_WorkRoot>$(RepositoryRoot).w\</_WorkRoot>
|
||||
<_WorkRoot>$(RepositoryRoot).w\$(SharedFxRID)\</_WorkRoot>
|
||||
<_WorkLayoutDir>$(_WorkRoot).l\</_WorkLayoutDir>
|
||||
<_WorkOutputDir>$(_WorkRoot).o\</_WorkOutputDir>
|
||||
<_MetapackageSrcRoot>$(RepositoryRoot)src\</_MetapackageSrcRoot>
|
||||
<_MetapackageSrcRoot>$(RepositoryRoot)src\Packages\</_MetapackageSrcRoot>
|
||||
<_TemplatesDir>$(MSBuildThisFileDirectory)tools\templates\</_TemplatesDir>
|
||||
<_DockerDir>$(MSBuildThisFileDirectory)tools\docker\</_DockerDir>
|
||||
<_PackagingDir>$(MSBuildThisFileDirectory)tools\packaging\</_PackagingDir>
|
||||
|
|
@ -17,6 +17,8 @@
|
|||
<!-- 3B = semicolon in ASCII -->
|
||||
<PathSeparator Condition="'$(PathSeparator)' == ''">:</PathSeparator>
|
||||
<PathSeparator Condition="$(SharedFxRID.StartsWith('win'))">%3B</PathSeparator>
|
||||
<ArchiveExtension>.tar.gz</ArchiveExtension>
|
||||
<ArchiveExtension Condition="$(SharedFxRID.StartsWith('win'))">.zip</ArchiveExtension>
|
||||
|
||||
<LibPrefix Condition="$([MSBuild]::IsOSPlatform('Linux')) OR $([MSBuild]::IsOSPlatform('OSX'))">lib</LibPrefix>
|
||||
<LibExtension>.so</LibExtension>
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
|
||||
<Target Name="GetMetapackageArtifactInfo">
|
||||
<ItemGroup>
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Microsoft.AspNetCore.All\Microsoft.AspNetCore.All.csproj" />
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Microsoft.AspNetCore.App\Microsoft.AspNetCore.App.csproj" />
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Microsoft.AspNetCore.Analyzers\Microsoft.AspNetCore.Analyzers.csproj" />
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.All\Microsoft.AspNetCore.All.csproj" />
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.App\Microsoft.AspNetCore.App.csproj" />
|
||||
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.Analyzers\Microsoft.AspNetCore.Analyzers.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild Projects="@(_MetapackageProject)"
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
<Target Name="_BuildMetapackage" DependsOnTargets="ResolveRepoInfo">
|
||||
<PropertyGroup>
|
||||
<MetapackageSource>$(_MetapackageSrcRoot)$(MetapackageName)\</MetapackageSource>
|
||||
<MetapackageWorkDirectory>$(_WorkRoot)$(MetapackageName)\</MetapackageWorkDirectory>
|
||||
<MetapackageWorkDirectory>$(_WorkRoot)pkg\$(MetapackageName)\</MetapackageWorkDirectory>
|
||||
<CommonProps />
|
||||
<CommonProps>$(CommonProps);Configuration=$(Configuration)</CommonProps>
|
||||
<CommonProps>$(CommonProps);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</CommonProps>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Error
|
||||
Message="Source directory $(MetapackageSource) for $(MetapackageName) does not exist."
|
||||
Text="Source directory $(MetapackageSource) for $(MetapackageName) does not exist."
|
||||
Condition="!Exists('$(MetapackageSource)')" />
|
||||
|
||||
<ItemGroup>
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
BuildInParallel="false" />
|
||||
</Target>
|
||||
|
||||
<Target Name="DefineSharedFxPrerequisites">
|
||||
<Target Name="DefineSharedFxPrerequisites" DependsOnTargets="ResolveCommitHash">
|
||||
<PropertyGroup>
|
||||
<RIDIsAcceptable Condition="'%(AllSharedFxRIDs.Identity)' == '$(SharedFxRID)'">true</RIDIsAcceptable>
|
||||
<CrossGenSharedFx>false</CrossGenSharedFx>
|
||||
|
|
@ -165,12 +165,12 @@
|
|||
Properties="$(RestoreProps);_Target=Restore;RestoreForce=true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PrepareForSharedFx" DependsOnTargets="DefineSharedFxPrerequisites">
|
||||
<Target Name="PrepareForSharedFx" DependsOnTargets="DefineSharedFxPrerequisites;ResolveCommitHash">
|
||||
<PropertyGroup>
|
||||
<AppSharedFxProps>SharedFxWorkDirectory=$(AppSharedFxWorkDirectory)</AppSharedFxProps>
|
||||
<AppSharedFxProps>RepositoryCommit=$(RepositoryCommit);SharedFxWorkDirectory=$(AppSharedFxWorkDirectory)</AppSharedFxProps>
|
||||
<AppSharedFxProps>$(AppSharedFxProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp22PackageVersion)</AppSharedFxProps>
|
||||
<AppSharedFxProps>$(AppSharedFxProps);SharedFxPackage=Microsoft.AspNetCore.App</AppSharedFxProps>
|
||||
<AllSharedFxProps>SharedFxWorkDirectory=$(AllSharedFxWorkDirectory)</AllSharedFxProps>
|
||||
<AllSharedFxProps>RepositoryCommit=$(RepositoryCommit);SharedFxWorkDirectory=$(AllSharedFxWorkDirectory)</AllSharedFxProps>
|
||||
<AllSharedFxProps>$(AllSharedFxProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp22PackageVersion)</AllSharedFxProps>
|
||||
<AllSharedFxProps>$(AllSharedFxProps);SharedFxPackage=Microsoft.AspNetCore.All</AllSharedFxProps>
|
||||
<AllSharedFxProps>$(AllSharedFxProps);SharedFxDep=Microsoft.AspNetCore.App</AllSharedFxProps>
|
||||
|
|
@ -178,7 +178,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<!-- Clear working directory -->
|
||||
<RemoveDir Directories="$(_WorkRoot)" />
|
||||
<!-- <RemoveDir Directories="$(_WorkRoot)" /> -->
|
||||
|
||||
<Copy SourceFiles="$(_MetapackageSrcRoot)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
|
||||
|
||||
|
|
@ -186,9 +186,9 @@
|
|||
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_PrepareForSharedFx" Properties="$(AllSharedFxProps)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ResolveSharedFxFiles" DependsOnTargets="DefineSharedFxPrerequisites;ResolveCommitHash">
|
||||
<Target Name="_ResolveSharedFxFiles" DependsOnTargets="DefineSharedFxPrerequisites">
|
||||
<ItemGroup>
|
||||
<VersionLines Include="$(CommitHash)" />
|
||||
<VersionLines Include="$(RepositoryCommit)" />
|
||||
<VersionLines Include="$(PackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
@ -515,8 +515,10 @@
|
|||
<OutputZipFiles Include="$(SharedFxIntermediateOutputPath)**\*" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Create archive -->
|
||||
<ZipArchive
|
||||
<!-- Create internal archive file -->
|
||||
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
|
||||
Command="tar -czf $(SharedFxOutputPath)$(SharedFxIntermediateArchiveBaseName)-$(PackageVersion)-$(SharedFxRID)$(ArchiveExtension) -C $(SharedFxIntermediateOutputPath) ." />
|
||||
<ZipArchive Condition="'$(ArchiveExtension)' == '.zip'"
|
||||
File="$(SharedFxOutputPath)$(SharedFxIntermediateArchiveBaseName)-$(PackageVersion)-$(SharedFxRID).zip"
|
||||
SourceFiles="@(OutputZipFiles)"
|
||||
WorkingDirectory="$(SharedFxIntermediateOutputPath)"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<Project>
|
||||
<Import Project="..\Directory.Build.props" />
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" PrivateAssets="All" />
|
||||
Loading…
Reference in New Issue