phases: - phase: Windows queue: name: DotNetCore-Windows timeoutInMinutes: 120 matrix: Release: BuildConfiguration: Release # see https://github.com/dotnet/core-eng/issues/4053 - MSI's cannot build from the NTAuthority\NetworkService account demands: - agent.name -equals DDVSOWINAGE086 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/runtime/aspnetcore-runtime-internal-3.0.0-alpha1-$(Build.BuildNumber)-win-x64.zip -x86 artifacts/runtime/aspnetcore-runtime-internal-3.0.0-alpha1-$(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/runtime/ 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