--- /dev/null
+parameters:
+ _PublishType: {}
+jobs:
+ - job: Finalize_Publish
+ displayName: Finalize_Publish
+ # Run only if all build legs succeeded
+ condition: and(succeeded('Build_Linux_x64_glibc'),
+ succeeded('Build_Linux_Arm64'),
+ succeeded('Build_Linux_Arm'),
+ succeeded('Build_Linux_x64_Alpine36'),
+ succeeded('Build_Linux_x64_Rhel6'),
+ succeeded('Build_OSX'),
+ succeeded('Build_Windows_x64'),
+ succeeded('Build_Windows_x86'),
+ succeeded('Build_Windows_Arm'),
+ succeeded('Build_Windows_Arm64'),
+ ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'))
+ # Run after all dependent legs are executed
+ dependsOn:
+ - Build_Linux_x64_glibc
+ - Build_Linux_Arm64
+ - Build_Linux_Arm
+ - Build_Linux_x64_Alpine36
+ # - Build_Linux_x64_FreeBSD
+ - Build_Linux_x64_Rhel6
+ - Build_Windows_x64
+ - Build_Windows_x86
+ - Build_Windows_Arm
+ - Build_Windows_Arm64
+ - Build_OSX
+ pool:
+ # For public or PR jobs, use the hosted pool. For internal jobs use the internal pool.
+ # Will eventually change this to two BYOC pools.
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: Hosted VS2017
+ ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ name: dotnet-internal-temp
+ variables:
+ _PublishType: ${{ parameters._PublishType}}
+ steps:
+
+ # Initialize tooling
+ - script: build.cmd
+ -- /t:BuildTraversalBuildDependencies
+ displayName: Initialize tooling
+ condition: succeeded()
+
+ - task: MicroBuildSigningPlugin@2
+ displayName: Install MicroBuild plugin for Signing
+ inputs:
+ signType: $(SignType)
+ zipSources: false
+ feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
+ continueOnError: false
+ condition: and(succeeded(), in(variables['SignType'], 'real', 'test'))
+
+ - task: MSBuild@1
+ displayName: Publish (no PublishType)
+ inputs:
+ solution: $(Build.SourcesDirectory)\publish\publish.proj
+ platform: x64
+ configuration: Release
+ msbuildVersion: 15.0
+ msbuildArchitecture: x64
+ msbuildArguments: '/p:Finalize=true
+ /p:OfficialPublish=true
+ /p:PublishType=nopublishtype
+ /p:SignType=$(SignType)
+ /p:StabilizePackageVersion=$(IsStable)
+ /p:TargetArchitecture=x64
+ $(_BlobFeedArgs)
+ $(_CommonPublishArgs)
+ $(_NugetFeedArgs)
+ $(_SymbolServerArgs)
+ /bl:$(Build.SourcesDirectory)\finalizepublish.binlog'
+ condition: and(succeeded(), eq(variables._PublishType, 'nopublishtype'))
+
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ *.log
+ *.binlog
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
+
+ - task: CopyFiles@2
+ displayName: Copy Manifest file
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/AssetManifest'
+ TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
+ continueOnError: true
+ condition: succeededOrFailed()
+
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Artifact BuildLogs
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)\BuildLogs'
+ ArtifactName: Finalize_Publish
+ condition: succeededOrFailed()
+
+ - task: PublishBuildArtifacts@1
+ displayName: Push Asset Manifests
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
+ PublishLocation: Container
+ ArtifactName: AssetManifests
+ continueOnError: true
+ condition: succeededOrFailed()
\ No newline at end of file
--- /dev/null
+parameters:
+ additionalMSBuildArgs: ''
+ additionalRunArgs: ''
+ crossBuild: false
+ displayName: null
+ dockerImage: null
+ osGroup: Linux
+ packageDistroListDeb: null
+ packageDistroListRpm: null
+ skipTests: $(SkipTests)
+ strategy:
+ matrix:
+ debug:
+ _BuildConfig: Debug
+ _PublishType: none
+ release:
+ _BuildConfig: Release
+ _PublishType: blob
+ targetArchitecture: x64
+jobs:
+ - job: ${{ parameters.displayName }}
+ displayName: ${{ parameters.displayName }}
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: dnceng-linux-external-temp
+ ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ name: dnceng-linux-internal-temp
+ strategy: ${{ parameters.strategy }}
+ variables:
+
+ ${{ if ne(parameters.displayName,'Build_Linux_x64_FreeBSD')}}:
+ RunArguments: docker run --privileged --rm
+ -v "$(Build.SourcesDirectory):/root/coresetup"
+ -w="/root/coresetup"
+ ${{ parameters.additionalRunArgs }}
+ ${{ parameters.dockerImage }}
+
+ ${{ if eq(parameters.displayName,'Build_Linux_x64_FreeBSD')}}:
+ RunArguments: export DotNetBootstrapCliTarPath=/dotnet-sdk-freebsd-x64.tar &&
+
+ BuildArguments: -OfficialBuildId=$(OfficialBuildId)
+ -ConfigurationGroup=$(_BuildConfig)
+ -CrossBuild=${{ parameters.crossBuild }}
+ -PortableBuild=${{ parameters.portableBuild }}
+ -strip-symbols
+ -SkipTests=${{ parameters.skipTests }}
+ -TargetArchitecture=${{ parameters.targetArchitecture }}
+ -- /p:StabilizePackageVersion=$(IsStable)
+ ${{ parameters.additionalMSBuildArgs }}
+
+ PublishArguments: /p:PublishType=$(_PublishType)
+ /p:ConfigurationGroup=$(_BuildConfig)
+ /p:OSGroup=${{ parameters.osGroup }}
+ /p:PortableBuild=${{ parameters.portableBuild }}
+ /p:StabilizePackageVersion=$(IsStable)
+ /p:TargetArchitecture=${{ parameters.targetArchitecture }}
+ ${{ parameters.additionalMSBuildArgs }}
+
+ CommonMSBuildArgs: /bl
+ /p:ConfigurationGroup=$(_BuildConfig)
+ /p:OfficialBuildId=$(OfficialBuildId)
+ /p:OSGroup=${{ parameters.osGroup }}
+ /p:PortableBuild=false
+ /p:StabilizePackageVersion=$(IsStable)
+ /p:TargetArchitecture=${{ parameters.targetArchitecture }}
+
+ # Packaging related variables
+ # Debian
+ CommonDebianRunCommand: run
+ -v $(Build.SourcesDirectory):/root/coresetup
+ -v $(Build.StagingDirectory)/sharedFrameworkPublish/:/root/sharedFrameworkPublish/
+ -w=/root/coresetup
+ microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
+ /root/coresetup/Tools/msbuild.sh
+ DebianPackagingCommand: $(CommonDebianRunCommand)
+ /root/coresetup/src/pkg/packaging/dir.proj
+ /p:UsePrebuiltPortableBinariesForInstallers=true
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+
+ # RPM
+ CommonRpmRunCommand: run
+ -v $(Build.SourcesDirectory):/root/coresetup
+ -v $(Build.StagingDirectory)/sharedFrameworkPublish/:/root/sharedFrameworkPublish/
+ -w=/root/coresetup
+ microsoft/dotnet-buildtools-prereqs:rhel-7-rpmpkg-c982313-20174116044113
+ /root/coresetup/Tools/msbuild.sh
+ RpmPackagingCommand: $(CommonRpmRunCommand)
+ /root/coresetup/src/pkg/packaging/dir.proj
+ /p:UsePrebuiltPortableBinariesForInstallers=true
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+ steps:
+
+ # Build binary and nuget packages
+ - script: $(RunArguments)
+ ./build.sh
+ $(BuildArguments)
+ displayName: Build
+ workingDirectory: '$(Build.SourcesDirectory)'
+
+ # Publish only if internal and not PR
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: $(RunArguments)
+ ./Tools/msbuild.sh
+ ./publish/publish.proj
+ $(PublishArguments)
+ $(_CommonPublishArgs)
+ displayName: Publish
+ workingDirectory: '$(Build.SourcesDirectory)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ # Only for glibc leg, here we produce RPMs and Debs
+ - ${{ if eq(parameters.displayName,'Build_Linux_x64_glibc')}}:
+ - task: CopyFiles@2
+ displayName: 'Copy built Portable linux-x64 binaries to staging directory'
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)/bin/obj/linux-x64.$(_BuildConfig)/sharedFrameworkPublish'
+ TargetFolder: '$(Build.StagingDirectory)/sharedFrameworkPublish'
+ - script: docker
+ $(CommonDebianRunCommand)
+ /root/coresetup/build.proj
+ /t:BuildTraversalBuildDependencies
+ $(CommonMSBuildArgs)
+ displayName: Build traversal build dependencies - Ubuntu 14.04
+ workingDirectory: '$(Build.SourcesDirectory)'
+
+ # Debian packaging
+ - script: docker
+ $(DebianPackagingCommand)
+ displayName: 'Package Runtime packages and Runtime Dep - Ubuntu 14.04'
+ workingDirectory: '$(Build.SourcesDirectory)'
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: docker
+ $(CommonDebianRunCommand)
+ /root/coresetup/publish/publish.proj
+ /p:PublishType=$(_PublishType)
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+ $(_CommonPublishArgs)
+ displayName: 'Publish Runtime and Runtime Dep - Ubuntu 14.04'
+ workingDirectory: '$(Build.SourcesDirectory)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ # Package and publish for each debian distros
+ - ${{ each debdistrorid in parameters.packageDistroListDeb }}:
+ - script: docker
+ $(DebianPackagingCommand) /p:BuildRuntimeDebs=false
+ /p:OutputRid=${{ debdistrorid }}-${{ parameters.targetArchitecture }}
+ displayName: 'Package Runtime Dep - ${{ debdistrorid }}'
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: docker
+ $(CommonDebianRunCommand)
+ /root/coresetup/publish/publish.proj
+ /p:PublishType=$(_PublishType)
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+ $(_CommonPublishArgs)
+ /p:OutputRid=${{ debdistrorid }}-${{ parameters.targetArchitecture }}
+ displayName: 'Publish Runtime Dep - ${{ debdistrorid }}'
+ workingDirectory: '$(Build.SourcesDirectory)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ # RPM Packaging
+ - script: docker
+ $(CommonRpmRunCommand)
+ /root/coresetup/build.proj
+ /t:BuildTraversalBuildDependencies
+ $(CommonMSBuildArgs)
+ displayName: Build traversal build dependencies - Rhel7
+ workingDirectory: '$(Build.SourcesDirectory)'
+ - script: docker
+ $(RpmPackagingCommand)
+ displayName: Package Runtime Dep - Rhel7
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: docker
+ $(CommonRpmRunCommand)
+ /root/coresetup/publish/publish.proj
+ /p:PublishType=$(_PublishType)
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+ $(_CommonPublishArgs)
+ displayName: Publish Runtime Dep - Rhel7
+ workingDirectory: '$(Build.SourcesDirectory)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ # Package and publish for each rpm distros
+ - ${{ each rpmdistrorid in parameters.packageDistroListRpm }}:
+ - script: docker
+ $(RpmPackagingCommand) /p:BuildRuntimeRpms=false
+ /p:OutputRid=${{ rpmdistrorid }}-${{ parameters.targetArchitecture }}
+ displayName: 'Package Runtime Dep - ${{ rpmdistrorid }}'
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: docker
+ $(CommonRpmRunCommand)
+ /root/coresetup/publish/publish.proj
+ /p:PublishType=$(_PublishType)
+ /p:SharedFrameworkPublishDir=/root/sharedFrameworkPublish/
+ $(CommonMSBuildArgs)
+ $(_CommonPublishArgs)
+ /p:OutputRid=${{ rpmdistrorid }}-${{ parameters.targetArchitecture }}
+ displayName: 'Publish Runtime Dep -${{ rpmdistrorid }}'
+ workingDirectory: '$(Build.SourcesDirectory)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ *.log
+ *.binlog
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Artifact BuildLogs
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)\BuildLogs'
+ ArtifactName: ${{ parameters.displayName }}-$(_BuildConfig)
+ continueOnError: true
+ condition: succeededOrFailed()
+
+ # Force clean up machine in case any docker images are left behind
+ - script: docker system prune -f
+ displayName: Run Docker clean up
+ condition: succeededOrFailed()
\ No newline at end of file
--- /dev/null
+jobs:
+- job: Build_OSX
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: Hosted macOS
+ ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ name: Hosted Mac internal
+ strategy:
+ matrix:
+ debug:
+ _BuildConfig: Debug
+ _PublishType: none
+ release:
+ _BuildConfig: Release
+ _PublishType: blob
+ steps:
+ - script: $(Build.SourcesDirectory)/build.sh
+ -OfficialBuildId=$(OfficialBuildId)
+ -ConfigurationGroup=$(_BuildConfig)
+ -PortableBuild=true
+ -strip-symbols
+ -SkipTests=$(SkipTests)
+ -- /p:StabilizePackageVersion=$(IsStable)
+ /bl:$(Build.SourcesDirectory)\build.binlog
+ displayName: Build
+ condition: succeeded()
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: $(Build.SourcesDirectory)/Tools/msbuild.sh
+ $(Build.SourcesDirectory)/publish/publish.proj
+ $(_CommonPublishArgs)
+ /p:PublishType=$(_PublishType)
+ /p:TargetArchitecture=x64
+ /p:ConfigurationGroup=$(_BuildConfig)
+ /p:PortableBuild=true
+ /p:OSGroup=OSX
+ /p:StabilizePackageVersion=$(IsStable)
+ /bl:$(Build.SourcesDirectory)\publish.binlog
+ displayName: Publish
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ *.log
+ *.binlog
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Artifact BuildLogs
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)\BuildLogs'
+ ArtifactName: $(Agent.Os)_$(Agent.JobName)
+ continueOnError: true
+ condition: succeededOrFailed()
+
\ No newline at end of file
--- /dev/null
+jobs:
+- job: Signing_Validation
+ # Run only if all build legs succeeded
+ condition: and(succeeded('Build_Linux_x64_glibc'),
+ succeeded('Build_Linux_Arm64'),
+ succeeded('Build_Linux_Arm'),
+ succeeded('Build_Linux_x64_Alpine36'),
+ succeeded('Build_Linux_x64_Rhel6'),
+ succeeded('Build_Windows_x64'),
+ succeeded('Build_Windows_x86'),
+ succeeded('Build_Windows_Arm'),
+ succeeded('Build_Windows_Arm64'),
+ succeeded('Build_OSX'),
+ ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'))
+ # Run after all dependent legs are executed
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: Hosted VS2017
+ ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ name: dotnet-internal-temp
+ dependsOn:
+ - Build_Linux_x64_glibc
+ - Build_Linux_Arm64
+ - Build_Linux_Arm
+ - Build_Linux_x64_Alpine36
+ # - Build_Linux_x64_FreeBSD
+ - Build_Linux_x64_Rhel6
+ - Build_Windows_x64
+ - Build_Windows_x86
+ - Build_Windows_Arm
+ - Build_Windows_Arm64
+ - Build_OSX
+ steps:
+
+ - script: build.cmd
+ -signing-validation
+ -- '$(_CommonPublishArgs)
+ /p:OfficialBuildId=$(OfficialBuildId)
+ /flp:v=detailed
+ /p:SignType=$(SignType)
+ /p:StabilizePackageVersion=$(IsStable)'
+
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ *.log
+ Bin\SigningValidation\Logs\**
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Artifact BuildLogs
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)\BuildLogs'
+ ArtifactName: Signing_Validation
+ continueOnError: true
+ condition: succeededOrFailed()
\ No newline at end of file
--- /dev/null
+parameters:
+ additionalMSBuildArguments: ''
+ buildFullPlatformManifest: false
+ displayName: ''
+ publishRidAgnosticPackages: false
+ skipTests: $(SkipTests)
+ targetArchitecture: null
+
+jobs:
+ - job: ${{ parameters.displayName }}
+ displayName: ${{ parameters.displayName }}
+ pool:
+ # For public or PR jobs, use the hosted pool. For internal jobs use the internal pool.
+ # Will eventually change this to two BYOC pools.
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: Hosted VS2017
+ ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ name: dotnet-internal-temp
+ strategy:
+ matrix:
+ debug:
+ _BuildConfig: Debug
+ _PublishType: none
+ release:
+ _BuildConfig: Release
+ _PublishType: blob
+ variables:
+ CommonMSBuildArgs: "/p:ConfigurationGroup=$(_BuildConfig)
+ /p:TargetArchitecture=${{ parameters.targetArchitecture }}
+ /p:PortableBuild=true
+ /p:SkipTests=${{ parameters.skipTests }}
+ /p:StabilizePackageVersion=$(IsStable)"
+ MsbuildSigningArguments: /p:CertificateId=400 /v:detailed /p:SignType=$(SignType)
+ steps:
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: MicroBuildSigningPlugin@2
+ displayName: Install MicroBuild plugin for Signing
+ inputs:
+ signType: $(SignType)
+ zipSources: false
+ feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
+ continueOnError: false
+ condition: and(succeeded(), in(variables['SignType'], 'real', 'test'))
+
+ # Initialize building
+ - script: $(Build.SourcesDirectory)\build.cmd
+ -- $(CommonMSBuildArgs)
+ '/t:BuildTraversalBuildDependencies
+ /bl:$(Build.SourcesDirectory)\init.binlog'
+ displayName: Build traversal build dependencies
+ condition: succeeded()
+
+ # Build binaries
+ - script: build.cmd
+ --src-builds
+ -- $(CommonMSBuildArgs)
+ /p:BuildAppx=false
+ displayName: Build binaries
+ condition: succeeded()
+
+ # Sign Binaries, signing requires VS MSBuild
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: MSBuild@1
+ displayName: Sign Binaries
+ inputs:
+ solution: '$(Build.SourcesDirectory)\signing\sign.proj'
+ msbuildVersion: 15.0
+ msbuildArchitecture: x64
+ msbuildArguments: '/t:SignBinaries
+ $(CommonMSBuildArgs)
+ $(MsbuildSigningArguments)
+ /bl:$(Build.SourcesDirectory)\singbinaries.binlog'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ # Build Nuget package
+ - script: build.cmd -pkg
+ -- '$(CommonMSBuildArgs)
+ /p:BuildFullPlatformManifest=${{ parameters.buildFullPlatformManifest }}
+ /flp:v=detailed;LogFile=$(Build.SourcesDirectory)\packages.binlog'
+ displayName: Build Nuget package
+ condition: succeeded()
+
+ # Build sharedframework layout
+ - script: build.cmd -sharedfx
+ -- '$(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\sharedframework.binlog'
+ displayName: Build sharedframework layout
+ condition: succeeded()
+
+ - ${{ if and(ne(parameters.displayName,'Build_Windows_x86'), ne(parameters.displayName,'Build_Windows_x64')) }}:
+ - script: build.cmd -packaging
+ -- '$(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\packaging.binlog'
+ displayName: Create Package
+ condition: succeeded()
+
+ # Following steps followed in sequence only for Windows x86 and Windows x64
+ # Create installers
+ # Sign MSIs
+ # Create bundles
+ # Extract Engine
+ # Sign Engine
+ # Re-attach Bundle
+ # Sign Bundle
+ - ${{ if or(eq(parameters.displayName,'Build_Windows_x86'), eq(parameters.displayName,'Build_Windows_x64')) }}:
+ - script: build.cmd -packaging
+ -- '/t:BuildInstallers
+ $(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\packaging.binlog'
+ displayName: Create installers
+ condition: succeeded()
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: MSBuild@1
+ displayName: Sign MSI and cab files
+ inputs:
+ solution: '$(Build.SourcesDirectory)\signing\sign.proj'
+ msbuildVersion: 15.0
+ msbuildArchitecture: x64
+ msbuildArguments: '/t:SignMsiAndCab
+ $(CommonMSBuildArgs)
+ $(MsbuildSigningArguments)'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ - script: build.cmd -packaging
+ -- '/t:BuildCombinedInstallers
+ $(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\createbundles.binlog'
+ displayName: Create bundles
+ condition: succeeded()
+
+ - script: build.cmd -packaging
+ -- '/t:ExtractEngineBundle
+ $(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\extractengine.binlog'
+ displayName: Extract Engine from Bundle
+ condition: succeeded()
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: MSBuild@1
+ displayName: Sign Engine
+ inputs:
+ solution: '$(Build.SourcesDirectory)\signing\sign.proj'
+ msbuildVersion: 15.0
+ msbuildArchitecture: x64
+ msbuildArguments: '/t:SignEngine
+ $(CommonMSBuildArgs)
+ $(MsbuildSigningArguments)
+ /bl:$(Build.SourcesDirectory)\signengine.binlog'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ - script: build.cmd -packaging
+ -- '/t:ReattachEngineToBundle
+ $(CommonMSBuildArgs)
+ /bl:$(Build.SourcesDirectory)\reattachengine.binlog'
+ displayName: Re-attach Engine
+ condition: succeeded()
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - task: MSBuild@1
+ displayName: Sign Bundle
+ inputs:
+ solution: '$(Build.SourcesDirectory)\signing\sign.proj'
+ msbuildVersion: 15.0
+ msbuildArchitecture: x64
+ msbuildArguments: '/t:SignBundle
+ $(CommonMSBuildArgs)
+ $(MsbuildSigningArguments)
+ /bl:$(Build.SourcesDirectory)\signbundle.binlog'
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+ # Publish all build assets
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - script: build.cmd -publishing
+ -- '$(CommonMSBuildArgs)
+ $(_CommonPublishArgs)
+ /p:PublishType=$(_PublishType)
+ /p:PublishRidAgnosticPackages=${{ parameters.publishRidAgnosticPackages }}
+ /p:BuildFullPlatformManifest=${{ parameters.buildFullPlatformManifest }}
+ /bl:$(Build.SourcesDirectory)\publish.binlog'
+ displayName: Publish build assets
+ condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
+
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ *.log
+ *.binlog
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Artifact BuildLogs
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)\BuildLogs'
+ ArtifactName: ${{ parameters.displayName }}-$(_BuildConfig)
+ continueOnError: true
+ condition: succeededOrFailed()
\ No newline at end of file
--- /dev/null
+trigger:
+- master
+
+variables:
+ - name: TeamName
+ value: dotnet-core-acquisition
+ # Skip Running CI tests
+ - name: SkipTests
+ value: false
+ # Set build as stable to remove build number from package names, used for milestone builds
+ - name: IsStable
+ value: false
+ # Set Official Build Id
+ - name: OfficialBuildId
+ value: $(Build.BuildNumber)
+ # Produce Test build for PR and Public builds
+ - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
+ - name: SignType
+ value: test
+ # Set variables only for Official build from internal
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - name: SignType
+ value: real
+ # Variable groups
+ - group: DotNet-Blob-Feed
+ - group: DotNet-Symbol-Server-Pats
+ # Used for publishing individual leg assets to azure blobstorage
+ - group: DotNet-DotNetCli-Storage
+ # Used for publishing to myget
+ - group: DotNet-MyGet-Publish
+ # Used for dotnet/versions update
+ - group: DotNet-Versions-Publish
+
+ # BlobFeed update
+ - name: _PublishBlobFeedUrl
+ value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
+ - name: _BlobFeedArgs
+ value: /p:PackagesUrl=$(_PublishBlobFeedUrl)
+ /p:SymbolPackagesUrl=$(_PublishBlobFeedUrl)
+ /p:TransportFeedAccessToken=$(dotnetfeed-storage-access-key-1)
+
+ # Symbol Server update
+ - name: _SymbolServerPath
+ value: https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection
+ - name: _SymbolServerArgs
+ value: /p:SymbolServerPath=$(_SymbolServerPath)
+ /p:SymbolServerPAT=$(microsoft-symbol-server-pat)
+ /p:SymbolExpirationInDays=365
+
+ # ******** Official values *****
+ - name: _CommonPublishArgs
+ value: /p:AzureAccountName=dotnetcli
+ /p:ContainerName=dotnet
+ /p:AzureAccessToken=$(dotnetcli-storage-key)
+ /p:ChecksumAzureAccountName=dotnetclichecksums
+ /p:ChecksumContainerName=dotnet
+ /p:ChecksumAzureAccessToken=$(dotnetclichecksums-storage-key)
+ # Used for publishing to dotnet myget account
+ - name: MyGetApiKey
+ value: $(dotnet-myget-org-api-key )
+ - name: MyGetFeedUrl
+ value: https://dotnet.myget.org/F/dotnet-core/api/v2/package
+ - name: MyGetSymbolsFeedUrl
+ value: https://dotnet.myget.org/F/dotnet-core/symbols/api/v2/package
+ - name: _NugetFeedArgs
+ value: /p:NuGetFeedUrl=$(MyGetFeedUrl)
+ /p:NuGetSymbolsFeedUrl=$(MyGetSymbolsFeedUrl)
+ /p:NuGetApiKey=$(MyGetApiKey)
+
+ # ******* End Dev testing Configuration ********
+jobs:
+ ################################################################################
+ # Build Linux legs
+ ################################################################################
+- template: /eng/jobs/linux-build.yml
+ parameters:
+ displayName: Build_Linux_x64_glibc
+ dockerImage: microsoft/dotnet-buildtools-prereqs:centos-7-d485f41-20173404063424
+ packageDistroListDeb: [debian.8,debian.9,ubuntu.16.04,ubuntu.18.04]
+ packageDistroListRpm: [centos.7,fedora.27,opensuse.42,oraclelinux.7,sles.12]
+ portableBuild: true
+ targetArchitecture: x64
+
+- template: /eng/jobs/linux-build.yml
+ parameters:
+ crossBuild: true
+ displayName: Build_Linux_Arm
+ dockerImage: microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180323032140
+ additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
+ portableBuild: true
+ skipTests: true
+ targetArchitecture: arm
+
+- template: /eng/jobs/linux-build.yml
+ parameters:
+ crossBuild: true
+ displayName: Build_Linux_Arm64
+ dockerImage: microsoft/dotnet-buildtools-prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180316023254
+ additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
+ portableBuild: true
+ skipTests: true
+ targetArchitecture: arm64
+
+- template: /eng/jobs/linux-build.yml
+ parameters:
+ additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
+ displayName: Build_Linux_x64_Alpine36
+ dockerImage: microsoft/dotnet-buildtools-prereqs:alpine-3.6-3148f11-20171119021156
+ portableBuild: false
+ targetArchitecture: x64
+
+- template: /eng/jobs/linux-build.yml
+ parameters:
+ additionalMSBuildArgs: /p:OutputRid=rhel.6-x64
+ displayName: Build_Linux_x64_Rhel6
+ dockerImage: microsoft/dotnet-buildtools-prereqs:centos-6-376e1a3-20174311014331
+ portableBuild: false
+ targetArchitecture: x64
+
+# - template: /eng/jobs/linux-build.yml
+# parameters:
+# additionalMSBuildArgs: /p:OutputRid=rhel.6-x64
+# displayName: Build_Linux_x64_FreeBSD
+# dockerImage: microsoft/dotnet-buildtools-prereqs:centos-6-376e1a3-20174311014331
+# osGroup: FreeBSD
+# portableBuild: true
+# skipTests: true
+# targetArchitecture: x64
+
+ ################################################################################
+ # Build Windows legs
+ ################################################################################
+
+# Windows x64
+- template: /eng/jobs/windows-build.yml
+ parameters:
+ buildFullPlatformManifest: true
+ displayName: Build_Windows_x64
+ publishRidAgnosticPackages: true
+ targetArchitecture: x64
+
+# Windows x86
+- template: /eng/jobs/windows-build.yml
+ parameters:
+ displayName: Build_Windows_x86
+ targetArchitecture: x86
+
+# Windows Arm64
+- template: /eng/jobs/windows-build.yml
+ parameters:
+ displayName: Build_Windows_Arm64
+ skipTests: true
+ targetArchitecture: arm64
+
+# Windows Arm
+- template: /eng/jobs/windows-build.yml
+ parameters:
+ displayName: Build_Windows_Arm
+ skipTests: true
+ targetArchitecture: arm
+
+ ################################################################################
+ # Build Build_OSX leg
+ ################################################################################
+- template: /eng/jobs/osx-build.yml
+
+- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ ################################################################################
+ # Signing validation
+ ################################################################################
+ - template: /eng/jobs/validate-signing.yml
+
+ ################################################################################
+ # Finalize build publish
+ # publish nuget packages to blobfeed, symbolserver, and myget
+ ################################################################################
+ - template: /eng/jobs/finalize-publish.yml
+ parameters:
+ _PublishType: nopublishtype
+
+ ################################################################################
+ # Publish to B.A.R
+ ################################################################################
+ - template: /eng/common/templates/job/publish-build-assets.yml
+ parameters:
+ pool:
+ name: dotnet-internal-temp
+ dependsOn:
+ - Finalize_Publish
\ No newline at end of file
-2.1.301
+2.1.401
\ No newline at end of file
"Project": "src\\corehost\\build.proj"
}
},
+ "packaging": {
+ "description": "Build packaging project.",
+ "settings": {
+ "Project": "src\\pkg\\packaging\\dir.proj"
+ }
+ },
+ "pkg": {
+ "description": "Build nuget packaging project.",
+ "settings": {
+ "Project": "src\\pkg\\dir.proj"
+ }
+ },
+ "publishing": {
+ "description": "Build publishing project.",
+ "settings": {
+ "Project": "publish\\publish.proj"
+ }
+ },
+ "sharedfx": {
+ "description": "Build Shared Framework project.",
+ "settings": {
+ "Project": "src\\sharedframework\\sharedframework.proj"
+ }
+ },
"signing-validation": {
"description": "Build signing validation project.",
"settings": {
"Project": "signing\\signingvalidation.proj"
}
},
+ "signing": {
+ "description": "Build signing project.",
+ "settings": {
+ "Project": "signing\\sign.proj"
+ }
+ },
"GenerateVersion": {
"description": "Generates the version header for native binaries.",
"settings": {
"msbuild": {
"osSpecific":{
"windows": {
- "defaultParameters": "/nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false",
- "path": "Tools/msbuild.cmd"
+ "defaultParameters": "msbuild /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false",
+ "path": "Tools/dotnetcli/dotnet"
},
"unix":{
- "defaultParameters": "/nologo /verbosity:minimal /clp:Summary /maxcpucount /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log",
- "path": "Tools/msbuild.sh"
+ "defaultParameters": "msbuild /nologo /verbosity:minimal /clp:Summary /maxcpucount /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log",
+ "path": "Tools/dotnetcli/dotnet"
}
},
"valueTypes": {
SET __NativeBuildArgs=/t:rebuild
if /i "%__IncrementalNativeBuild%" == "1" SET __NativeBuildArgs=
-echo %__rootDir%\run.cmd build-native -- "%__IntermediatesDir%\ALL_BUILD.vcxproj" %__NativeBuildArgs% /p:Configuration=%CMAKE_BUILD_TYPE% %__msbuildArgs%
-call %__rootDir%\run.cmd build-native -- "%__IntermediatesDir%\ALL_BUILD.vcxproj" %__NativeBuildArgs% /p:Configuration=%CMAKE_BUILD_TYPE% %__msbuildArgs%
+echo msbuild "%__IntermediatesDir%\ALL_BUILD.vcxproj" %__NativeBuildArgs% /p:Configuration=%CMAKE_BUILD_TYPE% %__msbuildArgs%
+call msbuild "%__IntermediatesDir%\ALL_BUILD.vcxproj" %__NativeBuildArgs% /p:Configuration=%CMAKE_BUILD_TYPE% %__msbuildArgs%
IF ERRORLEVEL 1 (
goto :Failure
)
<!-- Package versions used as toolsets -->
<PropertyGroup>
<FeedTasksPackage>Microsoft.DotNet.Build.Tasks.Feed</FeedTasksPackage>
- <FeedTasksPackageVersion>3.0.0-preview1-03430-01</FeedTasksPackageVersion>
+ <FeedTasksPackageVersion>2.2.0-beta.18578.9</FeedTasksPackageVersion>
</PropertyGroup>
<!-- Publish symbol build task package -->
<PropertyGroup>
<PublishSymbolsPackage>Microsoft.SymbolUploader.Build.Task</PublishSymbolsPackage>
- <PublishSymbolsPackageVersion>1.0.0-beta-63412-03</PublishSymbolsPackageVersion>
+ <PublishSymbolsPackageVersion>1.0.0-beta-63604-05</PublishSymbolsPackageVersion>
</PropertyGroup>
<ItemGroup>
if exist "%BUILD_TOOLS_PATH%" goto :afterbuildtoolsrestore
echo Restoring BuildTools version %BUILDTOOLS_VERSION%...
-echo Running: "%DOTNET_CMD%" restore "%INIT_TOOLS_RESTORE_PROJECT%" --no-cache --packages "%PACKAGES_DIR%" --source "%BUILDTOOLS_SOURCE%" /p:BuildToolsPackageVersion=%BUILDTOOLS_VERSION% /p:ToolsDir=%TOOLRUNTIME_DIR% >> "%INIT_TOOLS_LOG%"
-call "%DOTNET_CMD%" restore "%INIT_TOOLS_RESTORE_PROJECT%" --no-cache --packages "%PACKAGES_DIR%" --source "%BUILDTOOLS_SOURCE%" /p:BuildToolsPackageVersion=%BUILDTOOLS_VERSION% /p:ToolsDir=%TOOLRUNTIME_DIR% >> "%INIT_TOOLS_LOG%"
+echo Running: "%DOTNET_CMD%" restore "%INIT_TOOLS_RESTORE_PROJECT%" --no-cache --packages "%PACKAGES_DIR%" --source "%BUILDTOOLS_SOURCE%" --source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json /p:BuildToolsPackageVersion=%BUILDTOOLS_VERSION% /p:ToolsDir=%TOOLRUNTIME_DIR% >> "%INIT_TOOLS_LOG%"
+call "%DOTNET_CMD%" restore "%INIT_TOOLS_RESTORE_PROJECT%" --no-cache --packages "%PACKAGES_DIR%" --source "%BUILDTOOLS_SOURCE%" --source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json /p:BuildToolsPackageVersion=%BUILDTOOLS_VERSION% /p:ToolsDir=%TOOLRUNTIME_DIR% >> "%INIT_TOOLS_LOG%"
if NOT exist "%BUILD_TOOLS_PATH%\init-tools.cmd" (
echo ERROR: Could not restore build tools correctly. 1>&2
goto :error
if [ ! -e "$__BUILD_TOOLS_PATH" ]; then
echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..."
- echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION /p:ToolsDir=$__TOOLRUNTIME_DIR" >> "$__init_tools_log"
- "$__DOTNET_CMD" restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages "$__PACKAGES_DIR" --source "$__BUILDTOOLS_SOURCE" /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION /p:ToolsDir="$__TOOLRUNTIME_DIR" >> "$__init_tools_log"
+ echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE --source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION /p:ToolsDir=$__TOOLRUNTIME_DIR" >> "$__init_tools_log"
+ "$__DOTNET_CMD" restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages "$__PACKAGES_DIR" --source "$__BUILDTOOLS_SOURCE" --source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION /p:ToolsDir="$__TOOLRUNTIME_DIR" >> "$__init_tools_log"
if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then
echo "ERROR: Could not restore build tools correctly." 1>&2
display_error_message
<Serviceable>true</Serviceable>
<PackageLicenseUrl>https://github.com/dotnet/core-setup/blob/master/LICENSE.TXT</PackageLicenseUrl>
<PackageProjectUrl>https://dot.net</PackageProjectUrl>
- <PackageLicenseFile>$(RepoRoot)LICENSE.TXT</PackageLicenseFile>
+ <NugetLicenseFile>$(RepoRoot)LICENSE.TXT</NugetLicenseFile>
<PackageThirdPartyNoticesFile>$(RepoRoot)THIRD-PARTY-NOTICES.TXT</PackageThirdPartyNoticesFile>
</PropertyGroup>
<!-- Add required legal files to packages -->
<ItemGroup>
- <Content Condition="Exists('$(PackageLicenseFile)')"
- Include="$(PackageLicenseFile)">
+ <Content Condition="Exists('$(NugetLicenseFile)')"
+ Include="$(NugetLicenseFile)">
<PackagePath />
</Content>
<Content Condition="Exists('$(PackageThirdPartyNoticesFile)')"
<PropertyGroup>
<!-- Always push the build assets to azure for final publish -->
- <BuildDependsOn>
+ <BuildDependsOn Condition="'$(PublishType)' == 'blob'">
PublishToAzure;
</BuildDependsOn>
<Target Name="PublishFinalOutput"
Condition="'$(Finalize)' == 'true'"
- DependsOnTargets="PublishCoreHostPackages;SetupPublishSymbols;PublishSymbols;FinalizeBuildInAzure;UpdateVersionsRepo" />
+ DependsOnTargets="PublishCoreHostPackages;SetupPublishSymbols;PublishSymbols;FinalizeBuildInAzure" />
<Target Name="GetPackagesToSign" DependsOnTargets="GatherShippingPackages">
<ItemGroup>
<Output TaskParameter="BlobNames" ItemName="_BlobList" />
</ListAzureBlobs>
<ItemGroup>
- <_CoreHostPackages Include="%(_BlobList.Identity)" Condition="'%(_BlobList.Extension)' == '.nupkg'" />
+ <_CoreHostPackages Include="%(_BlobList.Identity)" />
</ItemGroup>
<PropertyGroup>
<DownloadDirectory Condition="'$(DownloadDirectory)' == ''">$(BinDir)PackageDownload/</DownloadDirectory>
BlobNamePrefix="Runtime/$(SharedFrameworkNugetVersion)/"
DownloadDirectory="$(DownloadDirectory)" />
<ItemGroup>
- <_DownloadedPackages Include="@(_CoreHostPackages->'$(DownloadDirectory)%(Filename)%(Extension)')" />
+ <_DownloadedAssets Include="@(_CoreHostPackages->'$(DownloadDirectory)%(Filename)%(Extension)')" />
+ <_DownloadedPackages Include="%(_DownloadedAssets.Identity)"
+ Condition="$([System.String]::new('%(_DownloadedAssets.Identity)').EndsWith('.nupkg'))" />
<_DownloadedSymbolsPackages Include="%(_DownloadedPackages.Identity)"
Condition="$([System.String]::new('%(_DownloadedPackages.Identity)').EndsWith('.symbols.nupkg'))" />
<_DownloadedStandardPackages Include="@(_DownloadedPackages)"
- Exclude="@(_DownloadedSymbolsPackages)" />
+ Exclude="@(_DownloadedSymbolsPackages)"
+ Condition="$([System.String]::new('%(_DownloadedPackages.Identity)').EndsWith('.nupkg'))" />
</ItemGroup>
</Target>
<Target Name="SetupPublishSymbols" Condition="'$(SymbolServerPath)'!=''" >
<PropertyGroup>
<SymbolExpirationInDays Condition="'$(SymbolExpirationInDays)'=='' and '$(SymbolExpirationDate)'==''">1</SymbolExpirationInDays>
- <ConvertPortablePdbsToWindowsPdbs>true</ConvertPortablePdbsToWindowsPdbs>
+ <ConvertPortablePdbsToWindowsPdbs>false</ConvertPortablePdbsToWindowsPdbs>
</PropertyGroup>
<ItemGroup>
<SymbolPackagesToPublish Include="$(DownloadDirectory)**\*.symbols.nupkg" Exclude="$(DownloadDirectory)**\*freebsd*.nupkg" />
</Target>
<Target Name="DoPushCoreHostPackagesToAzure"
- DependsOnTargets="PublishToAzureBlobFeed;PublishSymbolsToAzureBlobFeed"
+ DependsOnTargets="PublishToAzureBlobFeed;PublishFilesToAzureBlobFeed"
Condition="'$(OfficialPublish)' == 'true'"/>
<Target Name="PublishToAzureBlobFeed">
<Error Condition="'$(TransportFeedAccessToken)'==''" Text="Missing property TransportFeedAccessToken" />
<PropertyGroup>
<ExpectedFeedUrl>$(PackagesUrl)</ExpectedFeedUrl>
+ <AssetManifestFilePath>$(BUILD_SOURCESDIRECTORY)/artifacts/log/AssetManifest/Manifest.xml</AssetManifestFilePath>
</PropertyGroup>
<ItemGroup>
<ItemsToPush Remove="@(ItemsToPush)" />
<ItemsToPush Include="@(_DownloadedStandardPackages)"/>
- </ItemGroup>
- <PushToBlobFeed ExpectedFeedUrl="$(ExpectedFeedUrl)"
- AccountKey="$(TransportFeedAccessToken)"
- ItemsToPush="@(ItemsToPush)"
- Overwrite="$(OverwriteOnPublish)"/>
- </Target>
-
- <Target Name="PublishSymbolsToAzureBlobFeed">
- <Error Condition="'$(SymbolPackagesUrl)'==''" Text="Missing property SymbolPackagesUrl" />
- <Error Condition="'$(TransportFeedAccessToken)'==''" Text="Missing property TransportFeedAccessToken" />
- <PropertyGroup>
- <ExpectedFeedUrl>$(SymbolPackagesUrl)</ExpectedFeedUrl>
- </PropertyGroup>
- <ItemGroup>
- <ItemsToPush Remove="@(ItemsToPush)" />
<ItemsToPush Include="@(_DownloadedSymbolsPackages)"/>
</ItemGroup>
<PushToBlobFeed ExpectedFeedUrl="$(ExpectedFeedUrl)"
AccountKey="$(TransportFeedAccessToken)"
ItemsToPush="@(ItemsToPush)"
- Overwrite="$(OverwriteOnPublish)"/>
+ Overwrite="$(OverwriteOnPublish)"
+ ManifestBuildData="Location=$(ExpectedFeedUrl)"
+ ManifestRepoUri="$(BUILD_REPOSITORY_URI)"
+ ManifestBranch="$(BUILD_SOURCEBRANCH)"
+ ManifestBuildId="$(BUILD_BUILDNUMBER)"
+ ManifestCommit="$(BUILD_SOURCEVERSION)"
+ AssetManifestPath="$(AssetManifestFilePath)"
+ />
</Target>
+
+ <Target Name="PublishFilesToAzureBlobFeed">
+ <Error Condition="'$(PackagesUrl)'==''" Text="Missing property PackagesUrl" />
+ <Error Condition="'$(TransportFeedAccessToken)'==''" Text="Missing property TransportFeedAccessToken" />
+ <PropertyGroup>
+ <ExpectedFeedUrl>$(PackagesUrl)</ExpectedFeedUrl>
+ <AssetManifestFilePath>$(BUILD_SOURCESDIRECTORY)/artifacts/log/AssetManifest/Manifest_Installers.xml</AssetManifestFilePath>
+ </PropertyGroup>
+ <ItemGroup>
+ <ItemsToPush Remove="@(ItemsToPush)" />
+ <ItemsToPush Include="@(_DownloadedAssets)"
+ Exclude="@(_DownloadedPackages)" />
+ <ItemsToPush>
+ <RelativeBlobPath>assets/core-setup/$(InstallersRelativePath)%(Filename)%(Extension)</RelativeBlobPath>
+ </ItemsToPush>
+ </ItemGroup>
+ <PushToBlobFeed ExpectedFeedUrl="$(ExpectedFeedUrl)"
+ AccountKey="$(TransportFeedAccessToken)"
+ ItemsToPush="@(ItemsToPush)"
+ PublishFlatContainer="true"
+ Overwrite="$(OverwriteOnPublish)"
+ ManifestBuildData="Location=$(ExpectedFeedUrl)"
+ ManifestRepoUri="$(BUILD_REPOSITORY_URI)"
+ ManifestBranch="$(BUILD_SOURCEBRANCH)"
+ ManifestBuildId="$(BUILD_BUILDNUMBER)"
+ ManifestCommit="$(BUILD_SOURCEVERSION)"
+ AssetManifestPath="$(AssetManifestFilePath)"
+ />
+</Target>
<Import Project="$(ToolsDir)VersionTools.targets" Condition="Exists('$(ToolsDir)VersionTools.targets')" />
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />