Merge branch 'release/8.0.1xx' into marcpopMSFT-updatemsbuildversion
This commit is contained in:
commit
6825f02367
64 changed files with 4412 additions and 870 deletions
630
.vsts-ci.yml
630
.vsts-ci.yml
|
@ -1,3 +1,5 @@
|
|||
# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=286
|
||||
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
|
@ -23,339 +25,323 @@ variables:
|
|||
- group: DotNet-Installer-SDLValidation-Params
|
||||
- name: _PublishUsingPipelines
|
||||
value: true
|
||||
|
||||
- name: _InternalRuntimeDownloadArgs
|
||||
value: ''
|
||||
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNetBuilds storage account read tokens
|
||||
- name: _InternalRuntimeDownloadArgs
|
||||
value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
|
||||
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
|
||||
/p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64)
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
# Set the MicroBuild plugin installation directory to the agent temp directory to avoid SDL tool scanning.
|
||||
- name: MicroBuildOutputFolderOverride
|
||||
value: $(Agent.TempDirectory)
|
||||
|
||||
stages:
|
||||
- stage: Build
|
||||
jobs:
|
||||
# This job is for build retry configuration.
|
||||
- job: Publish_Build_Configuration
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022preview.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
resources:
|
||||
repositories:
|
||||
- repository: 1esPipelines
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
extends:
|
||||
${{ if notin(variables['Build.Reason'], 'PullRequest') }}:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
|
||||
${{ else }}:
|
||||
template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines
|
||||
parameters:
|
||||
containers:
|
||||
alpine319WithNode:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
|
||||
cblMariner20Fpm:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
|
||||
centosStream8:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
|
||||
debian11:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
|
||||
fedora36:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36
|
||||
ubuntu2204:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
mariner20CrossArm:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
|
||||
ubuntu2204DebPkg:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022preview.amd64
|
||||
steps:
|
||||
- publish: $(Build.SourcesDirectory)\eng\buildConfiguration
|
||||
artifact: buildConfiguration
|
||||
displayName: Publish Build Config
|
||||
|
||||
## PR-only jobs
|
||||
|
||||
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
|
||||
## Windows
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Debug_x64
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: true
|
||||
|
||||
## Linux
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Ubuntu_22_04_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Fedora_36_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_CentOS_8_Stream_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Debian_Stretch_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Debug
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
# Never run tests on arm64
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: true
|
||||
|
||||
## Official/PGO instrumentation Builds
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
|
||||
## Windows
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Linux
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-arm'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-musl-arm64'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Deb_Release_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_Arm64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_arm64
|
||||
runtimeIdentifier: 'osx-arm64'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Windows PGO Instrumentation builds
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Linux PGO Instrumentation builds
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
- template: /eng/common/templates/jobs/source-build.yml
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- stage: Publish
|
||||
dependsOn:
|
||||
- Build
|
||||
jobs:
|
||||
- template: /eng/common/templates/job/publish-build-assets.yml
|
||||
parameters:
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
# Temporary to workaround MicroBuild issues.
|
||||
credscan:
|
||||
enabled: false
|
||||
justificationForDisabling: 'CredScan is failing on the MicroBuild signing plugin. "MicroBuild/Plugins/nuget.config" has changing content and thus cannot be baselined.'
|
||||
stages:
|
||||
- stage: Build
|
||||
jobs:
|
||||
# Build Retry Configuration
|
||||
- job: Publish_Build_Configuration
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-windows-2022-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022.amd64
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
displayName: Publish Build Config
|
||||
inputs:
|
||||
targetPath: $(Build.SourcesDirectory)\eng\buildConfiguration
|
||||
artifactName: buildConfiguration
|
||||
|
||||
# PR-only jobs
|
||||
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
# Windows
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Debug_x64
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: true
|
||||
|
||||
# Linux
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Ubuntu_22_04_Debug_x64
|
||||
container: ubuntu2204
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Fedora_36_Debug_x64
|
||||
container: fedora36
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_CentOS_8_Stream_Debug_x64
|
||||
container: centosStream8
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Debian_11_Debug_x64
|
||||
container: debian11
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Debug
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
# Never run tests on arm64
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Debug_x64
|
||||
container: alpine319WithNode
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
|
||||
# MacOS
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: true
|
||||
|
||||
# Official/PGO instrumentation Builds
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
# Windows
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
# Linux
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-arm'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: mariner20CrossArm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-musl-arm64'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_x64
|
||||
container: alpine319WithNode
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Deb_Release_x64
|
||||
container: ubuntu2204DebPkg
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_x64
|
||||
container: cblMariner20Fpm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_Arm64
|
||||
container: cblMariner20Fpm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
# MacOS
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_arm64
|
||||
runtimeIdentifier: 'osx-arm64'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
# Source Build
|
||||
- template: /eng/common/templates-official/jobs/source-build.yml@self
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- stage: Publish
|
||||
dependsOn:
|
||||
- Build
|
||||
jobs:
|
||||
- template: /eng/common/templates-official/job/publish-build-assets.yml@self
|
||||
parameters:
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
pool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
|
66
.vsts-pr.yml
66
.vsts-pr.yml
|
@ -59,7 +59,7 @@ stages:
|
|||
|
||||
## Windows
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Debug_x64
|
||||
|
@ -70,7 +70,7 @@ stages:
|
|||
|
||||
## Linux
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Ubuntu_22_04_Debug_x64
|
||||
|
@ -79,7 +79,7 @@ stages:
|
|||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Fedora_36_Debug_x64
|
||||
|
@ -88,7 +88,7 @@ stages:
|
|||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_CentOS_8_Stream_Debug_x64
|
||||
|
@ -97,17 +97,17 @@ stages:
|
|||
buildArchitecture: x64
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Debian_Stretch_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch'
|
||||
jobName: Build_Debian_11_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Debug
|
||||
|
@ -117,11 +117,11 @@ stages:
|
|||
linuxPortable: true
|
||||
# Never run tests on arm64
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
|
@ -129,7 +129,7 @@ stages:
|
|||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
|
@ -140,7 +140,7 @@ stages:
|
|||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
|
@ -154,7 +154,7 @@ stages:
|
|||
|
||||
## Windows
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x64
|
||||
|
@ -162,14 +162,14 @@ stages:
|
|||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_arm64
|
||||
|
@ -179,7 +179,7 @@ stages:
|
|||
|
||||
## Linux
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm_Release
|
||||
|
@ -188,7 +188,7 @@ stages:
|
|||
runtimeIdentifier: 'linux-arm'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Release
|
||||
|
@ -197,18 +197,18 @@ stages:
|
|||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross'
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm64
|
||||
|
@ -218,11 +218,11 @@ stages:
|
|||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
|
@ -230,7 +230,7 @@ stages:
|
|||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Deb_Release_x64
|
||||
|
@ -242,7 +242,7 @@ stages:
|
|||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_x64
|
||||
|
@ -254,7 +254,7 @@ stages:
|
|||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_Arm64
|
||||
|
@ -267,7 +267,7 @@ stages:
|
|||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
|
@ -278,14 +278,14 @@ stages:
|
|||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_arm64
|
||||
|
@ -296,7 +296,7 @@ stages:
|
|||
|
||||
## Windows PGO Instrumentation builds
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
|
@ -305,7 +305,7 @@ stages:
|
|||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
|
@ -313,7 +313,7 @@ stages:
|
|||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
|
@ -324,7 +324,7 @@ stages:
|
|||
|
||||
## Linux PGO Instrumentation builds
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
|
@ -334,7 +334,7 @@ stages:
|
|||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
- template: eng/build.yml
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
|
||||
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
|
||||
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
|
||||
<add key="dotnet-eol-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eol-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
|
||||
<add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />
|
||||
|
|
|
@ -39,12 +39,6 @@
|
|||
<FileSignInfo Include="comhost.dll" CertificateName="None" />
|
||||
<FileSignInfo Include="singlefilehost.exe" CertificateName="None" />
|
||||
|
||||
<!-- These are 3rd party nupkgs and should not be signed with an MS cert -->
|
||||
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates21PackageVersion).nupkg" CertificateName="None" />
|
||||
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates30PackageVersion).nupkg" CertificateName="None" />
|
||||
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates31PackageVersion).nupkg" CertificateName="None" />
|
||||
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates50PackageVersion).nupkg" CertificateName="None" />
|
||||
|
||||
<FileExtensionSignInfo Include=".msi" CertificateName="$(InternalCertificateId)" />
|
||||
<!-- .ttf, .otf, and .js files come in from some older aspnetcore packages (e.g. 2.1).
|
||||
These files in the 5.0 packages are NOT signed. When doing postbuild signing,
|
||||
|
|
|
@ -5,46 +5,46 @@
|
|||
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos.
|
||||
The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal.
|
||||
-->
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha>
|
||||
<Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0" Version="8.0.5-servicing.24217.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha>
|
||||
<Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0" Version="8.0.5-servicing.24217.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha>
|
||||
<Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha>
|
||||
<Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
<SourceBuild RepoName="runtime" ManagedOnly="false" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.8.0" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.8.0" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<!-- Change blob version in GenerateLayout.targets if this is unpinned to service targeting pack -->
|
||||
<!-- No new netstandard.library planned for 3.1 timeframe at this time. -->
|
||||
|
@ -52,55 +52,55 @@
|
|||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-dev-certs" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-dev-certs" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-jwts" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-jwts" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-secrets" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-secrets" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha>
|
||||
<Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="8.0.102">
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="8.0.105">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha>
|
||||
<Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="8.0.102-servicing.24069.16">
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="8.0.105-servicing.24224.15">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha>
|
||||
<Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="8.0.102-servicing.24069.16">
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="8.0.105-servicing.24224.15">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha>
|
||||
<Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
|
||||
<SourceBuild RepoName="sdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="8.0.102-servicing.24069.16">
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="8.0.105-servicing.24224.15">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha>
|
||||
<Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
|
@ -124,21 +124,21 @@
|
|||
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
|
||||
</Dependency>
|
||||
<!-- For coherency purposes, these versions should be gated by the versions of winforms and wpf routed via windowsdesktop -->
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="8.0.2-servicing.24068.3" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="8.0.5-servicing.24217.4" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-winforms</Uri>
|
||||
<Sha>c58fa00bd16b92aab1d7fb2b93e71af6a7768139</Sha>
|
||||
<Sha>6c37c986b6c8fc0669b38a03a03445a75b8227a6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="8.0.5-servicing.24217.2" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-wpf</Uri>
|
||||
<Sha>472140dd926227876848e48f41cfc9acb9275492</Sha>
|
||||
<Sha>b5af29a8f41f880f38fd015c6bcb7aeb816fcef6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.0-beta.23563.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>424e4b7cffb7656efd63f7a905a2498e39011104</Sha>
|
||||
<Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.101-beta.23563.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>424e4b7cffb7656efd63f7a905a2498e39011104</Sha>
|
||||
<Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
|
||||
<SourceBuild RepoName="fsharp" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.8.0-release-23615-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
|
@ -146,9 +146,9 @@
|
|||
<Sha>aa59400b11e1aeee2e8af48928dbd48748a8bef9</Sha>
|
||||
<SourceBuild RepoName="vstest" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha>
|
||||
<Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-7.24067.24" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
|
@ -159,7 +159,7 @@
|
|||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.5-preview-24055-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.5-preview-24055-02">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
|
||||
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
|
||||
|
@ -173,18 +173,18 @@
|
|||
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
|
||||
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100" Version="8.0.2" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100" Version="8.0.5" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>2fc2ffd960930318f33fcaa690cbdbc55d72f52d</Sha>
|
||||
<Sha>71359b18c2d83c01a68bf155244a65962a7e8c8e</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-8.0.100" Version="8.0.0-preview.1.23557.2">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspire</Uri>
|
||||
<Sha>48e42f59d64d84b404e904996a9ed61f2a17a569</Sha>
|
||||
<SourceBuild RepoName="aspire" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="8.0.2-servicing.24062.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="8.0.5-servicing.24211.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>2fc2ffd960930318f33fcaa690cbdbc55d72f52d</Sha>
|
||||
<Sha>71359b18c2d83c01a68bf155244a65962a7e8c8e</Sha>
|
||||
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
|
@ -198,9 +198,9 @@
|
|||
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
|
||||
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.24161.1">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.24269.1">
|
||||
<Uri>https://github.com/dotnet/source-build-externals</Uri>
|
||||
<Sha>00fb7841c80b44262646e57bcfbe90a1b7bc3151</Sha>
|
||||
<Sha>4f2151df120194f0268944f1b723c14820738fc8</Sha>
|
||||
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1">
|
||||
|
@ -219,18 +219,18 @@
|
|||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24113.2">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24266.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha>
|
||||
<Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
|
||||
<SourceBuild RepoName="arcade" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.24113.2">
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.24266.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha>
|
||||
<Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.24113.2">
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.24266.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha>
|
||||
<Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23578.2">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<VersionMajor>8</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<VersionSDKMinor>1</VersionSDKMinor>
|
||||
<VersionFeature>04</VersionFeature>
|
||||
<VersionFeature>07</VersionFeature>
|
||||
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature)</VersionPrefix>
|
||||
<MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion>
|
||||
<CliProductBandVersion>$(MajorMinorVersion).$(VersionSDKMinor)</CliProductBandVersion>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<VersionFeature31>32</VersionFeature31>
|
||||
<VersionFeature50>17</VersionFeature50>
|
||||
<VersionFeature60>$([MSBuild]::Add($(VersionFeature), 25))</VersionFeature60>
|
||||
<VersionFeature70>$([MSBuild]::Add($(VersionFeature), 14))</VersionFeature70>
|
||||
<VersionFeature70>19</VersionFeature70>
|
||||
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks
|
||||
referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
|
||||
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
|
||||
|
@ -40,7 +40,7 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade -->
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.24113.2</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.24266.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade-services -->
|
||||
|
@ -48,22 +48,15 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/winforms -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>8.0.2-servicing.24068.3</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>8.0.5-servicing.24217.4</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/wpf -->
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>8.0.2-servicing.24068.6</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>8.0.5-servicing.24217.2</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/test-templates -->
|
||||
<!-- Legacy versions -->
|
||||
<MicrosoftDotNetTestProjectTemplates21PackageVersion>1.0.2-beta4.22406.1</MicrosoftDotNetTestProjectTemplates21PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates30PackageVersion>1.0.2-beta4.22406.1</MicrosoftDotNetTestProjectTemplates30PackageVersion>
|
||||
<!-- Supported versions -->
|
||||
<MicrosoftDotNetTestProjectTemplates31PackageVersion>1.1.0-rc.22558.1</MicrosoftDotNetTestProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates50PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates50PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates70PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates70PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
|
@ -72,22 +65,22 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>8.0.2</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>8.0.2</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>8.0.2-servicing.24068.4</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>8.0.2-servicing.24068.4</VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<dotnetdevcertsPackageVersion>8.0.2-servicing.24068.4</dotnetdevcertsPackageVersion>
|
||||
<dotnetuserjwtsPackageVersion>8.0.2-servicing.24068.4</dotnetuserjwtsPackageVersion>
|
||||
<dotnetusersecretsPackageVersion>8.0.2-servicing.24068.4</dotnetusersecretsPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>8.0.5</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>8.0.5</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>8.0.5-servicing.24224.4</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>8.0.5-servicing.24224.4</VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<dotnetdevcertsPackageVersion>8.0.5-servicing.24224.4</dotnetdevcertsPackageVersion>
|
||||
<dotnetuserjwtsPackageVersion>8.0.5-servicing.24224.4</dotnetuserjwtsPackageVersion>
|
||||
<dotnetusersecretsPackageVersion>8.0.5-servicing.24224.4</dotnetusersecretsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/sdk -->
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>8.0.102</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>8.0.102-servicing.24069.16</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>8.0.102-servicing.24069.16</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>8.0.105</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>8.0.105-servicing.24224.15</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>8.0.105-servicing.24224.15</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
|
||||
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
|
||||
|
@ -98,24 +91,24 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/corefx -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>8.0.2-servicing.24067.11</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>8.0.5-servicing.24216.15</MicrosoftNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/core-setup -->
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>8.0.2-servicing.24067.11</VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6480PackageVersion>8.0.2-servicing.24067.11</VSRedistCommonNetCoreTargetingPackx6480PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>8.0.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>8.0.2</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>8.0.2</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.2</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>8.0.5-servicing.24216.15</VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6480PackageVersion>8.0.5-servicing.24216.15</VSRedistCommonNetCoreTargetingPackx6480PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>8.0.5</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>8.0.5</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>8.0.5</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.5</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>8.0.2-servicing.24068.6</VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>8.0.2-servicing.24068.6</VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>8.0.2</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>8.0.2</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>8.0.5-servicing.24217.5</VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>8.0.5-servicing.24217.5</VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>8.0.5</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>8.0.5</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 -->
|
||||
|
@ -156,26 +149,15 @@
|
|||
<SubtractOneFromTemplateVersions Condition="$([MSBuild]::Subtract($(VersionFeature), $(MicrosoftNETSdkPatchVersion))) >= 2">true</SubtractOneFromTemplateVersions>
|
||||
<SubtractOneFromTemplateVersions Condition="$(VersionFeature) >= 1 AND ! $(MicrosoftNETSdkPackageVersion.Contains('rtm')) AND ! $(MicrosoftNETSdkPackageVersion.Contains('servicing'))">true</SubtractOneFromTemplateVersions>
|
||||
<AspNetCoreTemplateFeature60>$([MSBuild]::Subtract($(VersionFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70>$([MSBuild]::Subtract($(VersionFeature70), 1))</AspNetCoreTemplateFeature70>
|
||||
<AspNetCoreTemplateFeature60 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature60)</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature70)</AspNetCoreTemplateFeature70>
|
||||
<AspNetCoreTemplateFeature60 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature70), 1))</AspNetCoreTemplateFeature70>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Cross-release dependency versions -->
|
||||
<MicrosoftDotNetCommonItemTemplates50PackageVersion>5.0.403</MicrosoftDotNetCommonItemTemplates50PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates70PackageVersion>7.0.100</MicrosoftDotNetCommonItemTemplates70PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime50PackageVersion>5.0.17</MicrosoftAspNetCoreAppRuntime50PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime60PackageVersion>6.0.14</MicrosoftAspNetCoreAppRuntime60PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime70PackageVersion>7.0.3</MicrosoftAspNetCoreAppRuntime70PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates50PackageVersion>5.0.17-servicing.22215.4</MicrosoftWinFormsProjectTemplates50PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates50PackageVersion>5.0.17-servicing.22218.2</MicrosoftWPFProjectTemplates50PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates70PackageVersion>7.0.0-rtm.22518.7</MicrosoftWinFormsProjectTemplates70PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates70PackageVersion>7.0.0-rtm.22518.2</MicrosoftWPFProjectTemplates70PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion>
|
||||
|
@ -183,7 +165,7 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- This is the version of the zip archive for the WiX toolset and is different from the NuGet package version format. -->
|
||||
<WixVersion>3.14.0.8606</WixVersion>
|
||||
<WixVersion>3.14.1.8722</WixVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- 8.0 Template versions -->
|
||||
|
@ -193,13 +175,6 @@
|
|||
<MicrosoftDotNetCommonItemTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonItemTemplates80PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates80PackageVersion>
|
||||
<AspNetCorePackageVersionFor80Templates>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCorePackageVersionFor80Templates>
|
||||
<!-- 7.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates70PackageVersion>$(MicrosoftWinFormsProjectTemplates70PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates70PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates70PackageVersion>$(MicrosoftWPFProjectTemplates70PackageVersion)</MicrosoftDotNetWpfProjectTemplates70PackageVersion>
|
||||
<NUnit3Templates70PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates70PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates70PackageVersion>$(MicrosoftDotNetCommonItemTemplates70PackageVersion)</MicrosoftDotNetCommonItemTemplates70PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates70PackageVersion>$(MicrosoftDotNetCommonItemTemplates70PackageVersion)</MicrosoftDotNetCommonProjectTemplates70PackageVersion>
|
||||
<AspNetCorePackageVersionFor70Templates>7.0.$(AspNetCoreTemplateFeature70)</AspNetCorePackageVersionFor70Templates>
|
||||
<!-- 6.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftWinFormsProjectTemplates60PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftWPFProjectTemplates60PackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion>
|
||||
|
@ -207,33 +182,6 @@
|
|||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonProjectTemplates60PackageVersion>
|
||||
<AspNetCorePackageVersionFor60Templates>6.0.$(AspNetCoreTemplateFeature60)</AspNetCorePackageVersionFor60Templates>
|
||||
<!-- 5.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>$(MicrosoftWinFormsProjectTemplates50PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates50PackageVersion>$(MicrosoftWPFProjectTemplates50PackageVersion)</MicrosoftDotNetWpfProjectTemplates50PackageVersion>
|
||||
<NUnit3Templates50PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates50PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates50PackageVersion>$(MicrosoftDotNetCommonItemTemplates50PackageVersion)</MicrosoftDotNetCommonItemTemplates50PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates50PackageVersion>$(MicrosoftDotNetCommonItemTemplates50PackageVersion)</MicrosoftDotNetCommonProjectTemplates50PackageVersion>
|
||||
<AspNetCorePackageVersionFor50Templates>5.0.17</AspNetCorePackageVersionFor50Templates>
|
||||
<!-- 3.1 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>4.8.1-servicing.19605.5</MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates31PackageVersion>3.1.2-servicing.20066.4</MicrosoftDotNetWpfProjectTemplates31PackageVersion>
|
||||
<NUnit3Templates31PackageVersion>1.7.2</NUnit3Templates31PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates31PackageVersion>3.1.27</MicrosoftDotNetCommonItemTemplates31PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates31PackageVersion>$(MicrosoftDotNetCommonItemTemplates31PackageVersion)</MicrosoftDotNetCommonProjectTemplates31PackageVersion>
|
||||
<AspNetCorePackageVersionFor31Templates>3.1.32</AspNetCorePackageVersionFor31Templates>
|
||||
<MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>3.2.1</MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>
|
||||
<!-- 3.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates30PackageVersion>4.8.0-rc2.19462.10</MicrosoftDotnetWinFormsProjectTemplates30PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates30PackageVersion>3.0.0</MicrosoftDotNetWpfProjectTemplates30PackageVersion>
|
||||
<NUnit3Templates30PackageVersion>1.6.5</NUnit3Templates30PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates30PackageVersion>2.0.0-preview8.19373.1</MicrosoftDotNetCommonItemTemplates30PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates30PackageVersion>$(MicrosoftDotNetCommonItemTemplates30PackageVersion)</MicrosoftDotNetCommonProjectTemplates30PackageVersion>
|
||||
<AspNetCorePackageVersionFor30Templates>3.0.3</AspNetCorePackageVersionFor30Templates>
|
||||
<!-- 2.1 Template versions -->
|
||||
<NUnit3Templates21PackageVersion>1.5.3</NUnit3Templates21PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates21PackageVersion>1.0.2-beta3</MicrosoftDotNetCommonItemTemplates21PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates21PackageVersion>$(MicrosoftDotNetCommonItemTemplates21PackageVersion)</MicrosoftDotNetCommonProjectTemplates21PackageVersion>
|
||||
<AspNetCorePackageVersionFor21Templates>2.1.34</AspNetCorePackageVersionFor21Templates>
|
||||
</PropertyGroup>
|
||||
<!-- infrastructure and test only dependencies -->
|
||||
<PropertyGroup>
|
||||
|
@ -254,7 +202,7 @@
|
|||
<XamarinMacOSWorkloadManifestVersion>14.0.8478</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>17.0.8478</XamarinTvOSWorkloadManifestVersion>
|
||||
<!-- Workloads from dotnet/emsdk -->
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>8.0.2</MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>8.0.5</MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>
|
||||
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion)</EmscriptenWorkloadManifestVersion>
|
||||
<!-- emsdk workload prerelease version band must match the emsdk feature band -->
|
||||
<EmscriptenWorkloadFeatureBand>8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`))</EmscriptenWorkloadFeatureBand>
|
||||
|
|
261
eng/build-pr.yml
Normal file
261
eng/build-pr.yml
Normal file
|
@ -0,0 +1,261 @@
|
|||
parameters:
|
||||
# Agent OS identifier and used as job name
|
||||
- name: agentOs
|
||||
type: string
|
||||
|
||||
# Job name
|
||||
- name: jobName
|
||||
type: string
|
||||
|
||||
# Container to run the build in, if any
|
||||
- name: container
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Job timeout
|
||||
- name: timeoutInMinutes
|
||||
type: number
|
||||
default: 180
|
||||
|
||||
# Build configuration (Debug, Release)
|
||||
- name: buildConfiguration
|
||||
type: string
|
||||
values:
|
||||
- Debug
|
||||
- Release
|
||||
|
||||
# Build architecture
|
||||
- name: buildArchitecture
|
||||
type: string
|
||||
values:
|
||||
- arm
|
||||
- arm64
|
||||
- x64
|
||||
- x86
|
||||
|
||||
# Linux portable. If true, passes portable switch to build
|
||||
- name: linuxPortable
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
# Runtime Identifier
|
||||
- name: runtimeIdentifier
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# UI lang
|
||||
- name: dotnetCLIUILanguage
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Additional parameters
|
||||
- name: additionalBuildParameters
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Run tests
|
||||
- name: runTests
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
# PGO instrumentation jobs
|
||||
- name: pgoInstrument
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
- name: isBuiltFromVmr
|
||||
displayName: True when build is running from dotnet/dotnet
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
- template: common/templates/job/job.yml
|
||||
parameters:
|
||||
# Set up the name of the job.
|
||||
${{ if parameters.pgoInstrument }}:
|
||||
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
${{ if not(parameters.pgoInstrument) }}:
|
||||
name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
|
||||
# Set up the pool/machine info to be used based on the Agent OS
|
||||
${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
enableMicrobuild: true
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
container: ${{ parameters.container }}
|
||||
${{ if eq(parameters.agentOs, 'Darwin') }}:
|
||||
pool:
|
||||
vmImage: 'macOS-latest'
|
||||
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
${{ if parameters.isBuiltFromVmr }}:
|
||||
enableSbom: false
|
||||
${{ else }}:
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: true
|
||||
enableTelemetry: true
|
||||
helixRepo: dotnet/installer
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
variables:
|
||||
# Test variables
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '-test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '--pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '--test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
|
||||
- ${{ if parameters.pgoInstrument }}:
|
||||
- _PgoInstrument: '/p:PgoInstrument=true'
|
||||
- _PackArg: ''
|
||||
- ${{ else }}:
|
||||
- _PgoInstrument: ''
|
||||
|
||||
- ${{ if parameters.linuxPortable }}:
|
||||
- _LinuxPortable: '--linux-portable'
|
||||
- ${{ else }}:
|
||||
- _LinuxPortable: ''
|
||||
|
||||
- ${{ if ne(parameters.runtimeIdentifier, '') }}:
|
||||
- _RuntimeIdentifier: '--runtime-id ${{ parameters.runtimeIdentifier }}'
|
||||
- ${{ else }}:
|
||||
- _RuntimeIdentifier: ''
|
||||
|
||||
- _AgentOSName: ${{ parameters.agentOs }}
|
||||
- _TeamName: Roslyn-Project-System
|
||||
- _SignType: test
|
||||
- _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)'
|
||||
|
||||
- ${{ if parameters.isBuiltFromVmr }}:
|
||||
- installerRoot: '$(Build.SourcesDirectory)/src/installer'
|
||||
- _SignType: test
|
||||
- _PushToVSFeed: false
|
||||
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
|
||||
/p:TeamName=$(_TeamName)
|
||||
/p:DotNetPublishUsingPipelines=true
|
||||
/p:PublishToSymbolServer=false
|
||||
$(_PgoInstrument)
|
||||
- ${{ else }}:
|
||||
- installerRoot: '$(Build.SourcesDirectory)'
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
- _PushToVSFeed: true
|
||||
- _SignType: real
|
||||
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
/p:TeamName=$(_TeamName)
|
||||
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
|
||||
$(_PgoInstrument)
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(installerRoot)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(installerRoot)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: $(installerRoot)/build.cmd
|
||||
$(_TestArg) $(_PackArg)
|
||||
-publish -ci -sign
|
||||
-Configuration ${{ parameters.buildConfiguration }}
|
||||
-Architecture ${{ parameters.buildArchitecture }}
|
||||
$(_BuildArgs)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
env:
|
||||
DOTNET_CLI_UI_LANGUAGE: ${{ parameters.dotnetCLIUILanguage }}
|
||||
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(installerRoot)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(installerRoot)/NuGet.config $Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- ${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg) $(_PackArg)
|
||||
--publish --ci
|
||||
--noprettyprint
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_LinuxPortable)
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}:
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg)
|
||||
--pack --publish --ci
|
||||
--noprettyprint
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
inputs:
|
||||
testRunner: XUnit
|
||||
testResultsFiles: 'artifacts/TestResults/${{ parameters.buildConfiguration }}/*.xml'
|
||||
testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '${{ parameters.buildConfiguration }}'
|
||||
condition: ne(variables['_TestArg'], '')
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Logs
|
||||
inputs:
|
||||
SourceFolder: '$(installerRoot)/artifacts'
|
||||
Contents: |
|
||||
log/${{ parameters.buildConfiguration }}/**/*
|
||||
TestResults/${{ parameters.buildConfiguration }}/**/*
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Logs to VSTS
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
|
||||
ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)'
|
||||
publishLocation: Container
|
||||
continueOnError: true
|
||||
condition: always()
|
|
@ -1,9 +1,9 @@
|
|||
parameters:
|
||||
# Agent OS identifier and used as job name
|
||||
# Agent OS identifier and used as job name
|
||||
- name: agentOs
|
||||
type: string
|
||||
|
||||
# Job name
|
||||
# Job name
|
||||
- name: jobName
|
||||
type: string
|
||||
|
||||
|
@ -12,7 +12,7 @@ parameters:
|
|||
type: string
|
||||
default: ''
|
||||
|
||||
# Job timeout
|
||||
# Job timeout
|
||||
- name: timeoutInMinutes
|
||||
type: number
|
||||
default: 180
|
||||
|
@ -69,36 +69,42 @@ parameters:
|
|||
default: false
|
||||
|
||||
jobs:
|
||||
- template: common/templates/job/job.yml
|
||||
- template: common/templates-official/job/job.yml
|
||||
parameters:
|
||||
# Set up the name of the job.
|
||||
${{ if parameters.pgoInstrument }}:
|
||||
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
${{ if not(parameters.pgoInstrument) }}:
|
||||
name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
|
||||
## Set up the pool/machine info to be used based on the Agent OS
|
||||
|
||||
# Set up the pool/machine info to be used based on the Agent OS
|
||||
${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
enableMicrobuild: true
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
image: 1es-windows-2019-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
image: 1es-windows-2019
|
||||
os: windows
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
container: ${{ parameters.container }}
|
||||
${{ if eq(parameters.agentOs, 'Darwin') }}:
|
||||
pool:
|
||||
vmImage: 'macOS-latest'
|
||||
name: Azure Pipelines
|
||||
image: macOS-latest
|
||||
os: macOS
|
||||
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
${{ if parameters.isBuiltFromVmr }}:
|
||||
|
@ -111,8 +117,8 @@ jobs:
|
|||
workspace:
|
||||
clean: all
|
||||
|
||||
# Test parameters
|
||||
variables:
|
||||
# Test variables
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
|
@ -168,7 +174,7 @@ jobs:
|
|||
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
|
||||
$(_PgoInstrument)
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
|
@ -245,13 +251,13 @@ jobs:
|
|||
inputs:
|
||||
SourceFolder: '$(installerRoot)/artifacts'
|
||||
Contents: |
|
||||
log/${{ parameters.buildConfiguration }}/**/*
|
||||
TestResults/${{ parameters.buildConfiguration }}/**/*
|
||||
log/${{ parameters.buildConfiguration }}/**/*
|
||||
TestResults/${{ parameters.buildConfiguration }}/**/*
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish Logs to VSTS
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
|
||||
|
|
|
@ -35,7 +35,7 @@ Set-StrictMode -Version 2.0
|
|||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
# Add source entry to PackageSources
|
||||
function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $Password) {
|
||||
function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
|
||||
$packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
|
||||
|
||||
if ($packageSource -eq $null)
|
||||
|
@ -48,12 +48,11 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern
|
|||
else {
|
||||
Write-Host "Package source $SourceName already present."
|
||||
}
|
||||
|
||||
AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $Password
|
||||
AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd
|
||||
}
|
||||
|
||||
# Add a credential node for the specified source
|
||||
function AddCredential($creds, $source, $username, $password) {
|
||||
function AddCredential($creds, $source, $username, $pwd) {
|
||||
# Looks for credential configuration for the given SourceName. Create it if none is found.
|
||||
$sourceElement = $creds.SelectSingleNode($Source)
|
||||
if ($sourceElement -eq $null)
|
||||
|
@ -82,17 +81,18 @@ function AddCredential($creds, $source, $username, $password) {
|
|||
$passwordElement.SetAttribute("key", "ClearTextPassword")
|
||||
$sourceElement.AppendChild($passwordElement) | Out-Null
|
||||
}
|
||||
$passwordElement.SetAttribute("value", $Password)
|
||||
|
||||
$passwordElement.SetAttribute("value", $pwd)
|
||||
}
|
||||
|
||||
function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Password) {
|
||||
function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) {
|
||||
$maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]")
|
||||
|
||||
Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds."
|
||||
|
||||
ForEach ($PackageSource in $maestroPrivateSources) {
|
||||
Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key
|
||||
AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -Password $Password
|
||||
AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -144,13 +144,13 @@ if ($disabledSources -ne $null) {
|
|||
$userName = "dn-bot"
|
||||
|
||||
# Insert credential nodes for Maestro's private feeds
|
||||
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password
|
||||
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password
|
||||
|
||||
# 3.1 uses a different feed url format so it's handled differently here
|
||||
$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
|
||||
if ($dotnet31Source -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
}
|
||||
|
||||
$dotnetVersions = @('5','6','7','8')
|
||||
|
@ -159,9 +159,9 @@ foreach ($dotnetVersion in $dotnetVersions) {
|
|||
$feedPrefix = "dotnet" + $dotnetVersion;
|
||||
$dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
|
||||
if ($dotnetSource -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
}
|
||||
}
|
||||
|
||||
$doc.Save($filename)
|
||||
$doc.Save($filename)
|
|
@ -63,7 +63,7 @@ if [ -z "$CLR_CC" ]; then
|
|||
# Set default versions
|
||||
if [ -z "$majorVersion" ]; then
|
||||
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
|
||||
if [ "$compiler" = "clang" ]; then versions="17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
|
||||
if [ "$compiler" = "clang" ]; then versions="18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
|
||||
elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi
|
||||
|
||||
for version in $versions; do
|
||||
|
|
264
eng/common/templates-official/job/job.yml
Normal file
264
eng/common/templates-official/job/job.yml
Normal file
|
@ -0,0 +1,264 @@
|
|||
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
|
||||
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
|
||||
|
||||
parameters:
|
||||
# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
|
||||
cancelTimeoutInMinutes: ''
|
||||
condition: ''
|
||||
container: ''
|
||||
continueOnError: false
|
||||
dependsOn: ''
|
||||
displayName: ''
|
||||
pool: ''
|
||||
steps: []
|
||||
strategy: ''
|
||||
timeoutInMinutes: ''
|
||||
variables: []
|
||||
workspace: ''
|
||||
templateContext: ''
|
||||
|
||||
# Job base template specific parameters
|
||||
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
|
||||
artifacts: ''
|
||||
enableMicrobuild: false
|
||||
enablePublishBuildArtifacts: false
|
||||
enablePublishBuildAssets: false
|
||||
enablePublishTestResults: false
|
||||
enablePublishUsingPipelines: false
|
||||
enableBuildRetry: false
|
||||
disableComponentGovernance: ''
|
||||
componentGovernanceIgnoreDirectories: ''
|
||||
mergeTestResults: false
|
||||
testRunTitle: ''
|
||||
testResultsFormat: ''
|
||||
name: ''
|
||||
preSteps: []
|
||||
runAsPublic: false
|
||||
# Sbom related params
|
||||
enableSbom: true
|
||||
PackageVersion: 7.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
|
||||
${{ if ne(parameters.cancelTimeoutInMinutes, '') }}:
|
||||
cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }}
|
||||
|
||||
${{ if ne(parameters.condition, '') }}:
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
${{ if ne(parameters.container, '') }}:
|
||||
container: ${{ parameters.container }}
|
||||
|
||||
${{ if ne(parameters.continueOnError, '') }}:
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
${{ if ne(parameters.dependsOn, '') }}:
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
|
||||
${{ if ne(parameters.displayName, '') }}:
|
||||
displayName: ${{ parameters.displayName }}
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
|
||||
${{ if ne(parameters.strategy, '') }}:
|
||||
strategy: ${{ parameters.strategy }}
|
||||
|
||||
${{ if ne(parameters.timeoutInMinutes, '') }}:
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
|
||||
${{ if ne(parameters.templateContext, '') }}:
|
||||
templateContext: ${{ parameters.templateContext }}
|
||||
|
||||
variables:
|
||||
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
|
||||
- name: DOTNET_CLI_TELEMETRY_PROFILE
|
||||
value: '$(Build.Repository.Uri)'
|
||||
- ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}:
|
||||
- name: EnableRichCodeNavigation
|
||||
value: 'true'
|
||||
# Retry signature validation up to three times, waiting 2 seconds between attempts.
|
||||
# See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures
|
||||
- name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY
|
||||
value: 3,2000
|
||||
- ${{ each variable in parameters.variables }}:
|
||||
# handle name-value variable syntax
|
||||
# example:
|
||||
# - name: [key]
|
||||
# value: [value]
|
||||
- ${{ if ne(variable.name, '') }}:
|
||||
- name: ${{ variable.name }}
|
||||
value: ${{ variable.value }}
|
||||
|
||||
# handle variable groups
|
||||
- ${{ if ne(variable.group, '') }}:
|
||||
- group: ${{ variable.group }}
|
||||
|
||||
# handle template variable syntax
|
||||
# example:
|
||||
# - template: path/to/template.yml
|
||||
# parameters:
|
||||
# [key]: [value]
|
||||
- ${{ if ne(variable.template, '') }}:
|
||||
- template: ${{ variable.template }}
|
||||
${{ if ne(variable.parameters, '') }}:
|
||||
parameters: ${{ variable.parameters }}
|
||||
|
||||
# handle key-value variable syntax.
|
||||
# example:
|
||||
# - [key]: [value]
|
||||
- ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}:
|
||||
- ${{ each pair in variable }}:
|
||||
- name: ${{ pair.key }}
|
||||
value: ${{ pair.value }}
|
||||
|
||||
# DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds
|
||||
- ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
|
||||
${{ if ne(parameters.workspace, '') }}:
|
||||
workspace: ${{ parameters.workspace }}
|
||||
|
||||
steps:
|
||||
- ${{ if ne(parameters.preSteps, '') }}:
|
||||
- ${{ each preStep in parameters.preSteps }}:
|
||||
- ${{ preStep }}
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
||||
- task: MicroBuildSigningPlugin@4
|
||||
displayName: Install MicroBuild plugin
|
||||
inputs:
|
||||
signType: $(_SignType)
|
||||
zipSources: false
|
||||
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
|
||||
env:
|
||||
TeamName: $(_TeamName)
|
||||
MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)'
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
buildType: current
|
||||
artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }}
|
||||
targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }}
|
||||
itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }}
|
||||
|
||||
- ${{ each step in parameters.steps }}:
|
||||
- ${{ step }}
|
||||
|
||||
- ${{ if eq(parameters.enableRichCodeNavigation, true) }}:
|
||||
- task: RichCodeNavIndexer@0
|
||||
displayName: RichCodeNav Upload
|
||||
inputs:
|
||||
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
|
||||
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
|
||||
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
|
||||
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
|
||||
continueOnError: true
|
||||
|
||||
- template: /eng/common/templates-official/steps/component-governance.yml
|
||||
parameters:
|
||||
${{ if eq(parameters.disableComponentGovernance, '') }}:
|
||||
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}:
|
||||
disableComponentGovernance: false
|
||||
${{ else }}:
|
||||
disableComponentGovernance: true
|
||||
${{ else }}:
|
||||
disableComponentGovernance: ${{ parameters.disableComponentGovernance }}
|
||||
componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
|
||||
|
||||
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: MicroBuildCleanup@1
|
||||
displayName: Execute Microbuild cleanup tasks
|
||||
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
env:
|
||||
TeamName: $(_TeamName)
|
||||
|
||||
- ${{ if ne(parameters.artifacts.publish, '') }}:
|
||||
- ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather binaries for publish to artifacts
|
||||
inputs:
|
||||
SourceFolder: 'artifacts/bin'
|
||||
Contents: '**'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin'
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather packages for publish to artifacts
|
||||
inputs:
|
||||
SourceFolder: 'artifacts/packages'
|
||||
Contents: '**'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish pipeline artifacts
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts'
|
||||
PublishLocation: Container
|
||||
ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
- ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}:
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
inputs:
|
||||
targetPath: 'artifacts/log'
|
||||
artifactName: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }}
|
||||
displayName: 'Publish logs'
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}:
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish Logs
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)'
|
||||
PublishLocation: Container
|
||||
ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}:
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish XUnit Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
|
||||
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit
|
||||
mergeTestResults: ${{ parameters.mergeTestResults }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
- ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'vstest')) }}:
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish TRX Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'VSTest'
|
||||
testResultsFiles: '*.trx'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
|
||||
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx
|
||||
mergeTestResults: ${{ parameters.mergeTestResults }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}:
|
||||
- template: /eng/common/templates-official/steps/generate-sbom.yml
|
||||
parameters:
|
||||
PackageVersion: ${{ parameters.packageVersion}}
|
||||
BuildDropPath: ${{ parameters.buildDropPath }}
|
||||
IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
|
||||
|
||||
- ${{ if eq(parameters.enableBuildRetry, 'true') }}:
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
inputs:
|
||||
targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration'
|
||||
artifactName: 'BuildConfiguration'
|
||||
displayName: 'Publish build retry configuration'
|
||||
continueOnError: true
|
112
eng/common/templates-official/job/onelocbuild.yml
Normal file
112
eng/common/templates-official/job/onelocbuild.yml
Normal file
|
@ -0,0 +1,112 @@
|
|||
parameters:
|
||||
# Optional: dependencies of the job
|
||||
dependsOn: ''
|
||||
|
||||
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
|
||||
pool: ''
|
||||
|
||||
CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
|
||||
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
|
||||
|
||||
SourcesDirectory: $(Build.SourcesDirectory)
|
||||
CreatePr: true
|
||||
AutoCompletePr: false
|
||||
ReusePr: true
|
||||
UseLfLineEndings: true
|
||||
UseCheckedInLocProjectJson: false
|
||||
SkipLocProjectJsonGeneration: false
|
||||
LanguageSet: VS_Main_Languages
|
||||
LclSource: lclFilesInRepo
|
||||
LclPackageId: ''
|
||||
RepoType: gitHub
|
||||
GitHubOrg: dotnet
|
||||
MirrorRepo: ''
|
||||
MirrorBranch: main
|
||||
condition: ''
|
||||
JobNameSuffix: ''
|
||||
|
||||
jobs:
|
||||
- job: OneLocBuild${{ parameters.JobNameSuffix }}
|
||||
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
|
||||
displayName: OneLocBuild${{ parameters.JobNameSuffix }}
|
||||
|
||||
variables:
|
||||
- group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
|
||||
- name: _GenerateLocProjectArguments
|
||||
value: -SourcesDirectory ${{ parameters.SourcesDirectory }}
|
||||
-LanguageSet "${{ parameters.LanguageSet }}"
|
||||
-CreateNeutralXlfs
|
||||
- ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}:
|
||||
- name: _GenerateLocProjectArguments
|
||||
value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if eq(parameters.pool, '') }}:
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
steps:
|
||||
- ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}:
|
||||
- task: Powershell@2
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
|
||||
arguments: $(_GenerateLocProjectArguments)
|
||||
displayName: Generate LocProject.json
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- task: OneLocBuild@2
|
||||
displayName: OneLocBuild
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
inputs:
|
||||
locProj: eng/Localize/LocProject.json
|
||||
outDir: $(Build.ArtifactStagingDirectory)
|
||||
lclSource: ${{ parameters.LclSource }}
|
||||
lclPackageId: ${{ parameters.LclPackageId }}
|
||||
isCreatePrSelected: ${{ parameters.CreatePr }}
|
||||
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
|
||||
${{ if eq(parameters.CreatePr, true) }}:
|
||||
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
|
||||
${{ if eq(parameters.RepoType, 'gitHub') }}:
|
||||
isShouldReusePrSelected: ${{ parameters.ReusePr }}
|
||||
packageSourceAuth: patAuth
|
||||
patVariable: ${{ parameters.CeapexPat }}
|
||||
${{ if eq(parameters.RepoType, 'gitHub') }}:
|
||||
repoType: ${{ parameters.RepoType }}
|
||||
gitHubPatVariable: "${{ parameters.GithubPat }}"
|
||||
${{ if ne(parameters.MirrorRepo, '') }}:
|
||||
isMirrorRepoSelected: true
|
||||
gitHubOrganization: ${{ parameters.GitHubOrg }}
|
||||
mirrorRepo: ${{ parameters.MirrorRepo }}
|
||||
mirrorBranch: ${{ parameters.MirrorBranch }}
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish Localization Files
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc'
|
||||
PublishLocation: Container
|
||||
ArtifactName: Loc
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish LocProject.json
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/'
|
||||
PublishLocation: Container
|
||||
ArtifactName: Loc
|
||||
condition: ${{ parameters.condition }}
|
155
eng/common/templates-official/job/publish-build-assets.yml
Normal file
155
eng/common/templates-official/job/publish-build-assets.yml
Normal file
|
@ -0,0 +1,155 @@
|
|||
parameters:
|
||||
configuration: 'Debug'
|
||||
|
||||
# Optional: condition for the job to run
|
||||
condition: ''
|
||||
|
||||
# Optional: 'true' if future jobs should run even if this job fails
|
||||
continueOnError: false
|
||||
|
||||
# Optional: dependencies of the job
|
||||
dependsOn: ''
|
||||
|
||||
# Optional: Include PublishBuildArtifacts task
|
||||
enablePublishBuildArtifacts: false
|
||||
|
||||
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
|
||||
pool: {}
|
||||
|
||||
# Optional: should run as a public build even in the internal project
|
||||
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
|
||||
runAsPublic: false
|
||||
|
||||
# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
|
||||
publishUsingPipelines: false
|
||||
|
||||
# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
|
||||
publishAssetsImmediately: false
|
||||
|
||||
artifactsPublishingAdditionalParameters: ''
|
||||
|
||||
signingValidationAdditionalParameters: ''
|
||||
|
||||
jobs:
|
||||
- job: Asset_Registry_Publish
|
||||
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
timeoutInMinutes: 150
|
||||
|
||||
${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
displayName: Publish Assets
|
||||
${{ else }}:
|
||||
displayName: Publish to Build Asset Registry
|
||||
|
||||
variables:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- group: Publish-Build-Assets
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates-official/post-build/common-variables.yml
|
||||
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
image: windows.vs2019.amd64
|
||||
os: windows
|
||||
steps:
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifact
|
||||
inputs:
|
||||
artifactName: AssetManifests
|
||||
downloadPath: '$(Build.StagingDirectory)/Download'
|
||||
checkDownloadedFiles: true
|
||||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Publish Build Assets
|
||||
inputs:
|
||||
filePath: eng\common\sdk-task.ps1
|
||||
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
|
||||
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
|
||||
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
|
||||
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
|
||||
/p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
- task: powershell@2
|
||||
displayName: Create ReleaseConfigs Artifact
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
New-Item -Path "$(Build.StagingDirectory)/ReleaseConfigs" -ItemType Directory -Force
|
||||
$filePath = "$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt"
|
||||
Add-Content -Path $filePath -Value $(BARBuildId)
|
||||
Add-Content -Path $filePath -Value "$(DefaultChannels)"
|
||||
Add-Content -Path $filePath -Value $(IsStableBuild)
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish ReleaseConfigs Artifact
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs'
|
||||
PublishLocation: Container
|
||||
ArtifactName: ReleaseConfigs
|
||||
|
||||
- task: powershell@2
|
||||
displayName: Check if SymbolPublishingExclusionsFile.txt exists
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
$symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
|
||||
if(Test-Path -Path $symbolExclusionfile)
|
||||
{
|
||||
Write-Host "SymbolExclusionFile exists"
|
||||
Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true"
|
||||
}
|
||||
else{
|
||||
Write-Host "Symbols Exclusion file does not exists"
|
||||
Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false"
|
||||
}
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish SymbolPublishingExclusionsFile Artifact
|
||||
condition: eq(variables['SymbolExclusionFile'], 'true')
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||
PublishLocation: Container
|
||||
ArtifactName: ReleaseConfigs
|
||||
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates-official/post-build/setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion 3
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-MaestroToken '$(MaestroApiAccessToken)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
|
||||
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
|
||||
- template: /eng/common/templates-official/steps/publish-logs.yml
|
||||
parameters:
|
||||
JobLabel: 'Publish_Artifacts_Logs'
|
67
eng/common/templates-official/job/source-build.yml
Normal file
67
eng/common/templates-official/job/source-build.yml
Normal file
|
@ -0,0 +1,67 @@
|
|||
parameters:
|
||||
# This template adds arcade-powered source-build to CI. The template produces a server job with a
|
||||
# default ID 'Source_Build_Complete' to put in a dependency list if necessary.
|
||||
|
||||
# Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed.
|
||||
jobNamePrefix: 'Source_Build'
|
||||
|
||||
# Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for
|
||||
# managed-only repositories. This is an object with these properties:
|
||||
#
|
||||
# name: ''
|
||||
# The name of the job. This is included in the job ID.
|
||||
# targetRID: ''
|
||||
# The name of the target RID to use, instead of the one auto-detected by Arcade.
|
||||
# nonPortable: false
|
||||
# Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than
|
||||
# linux-x64), and compiling against distro-provided packages rather than portable ones.
|
||||
# skipPublishValidation: false
|
||||
# Disables publishing validation. By default, a check is performed to ensure no packages are
|
||||
# published by source-build.
|
||||
# container: ''
|
||||
# A container to use. Runs in docker.
|
||||
# pool: {}
|
||||
# A pool to use. Runs directly on an agent.
|
||||
# buildScript: ''
|
||||
# Specifies the build script to invoke to perform the build in the repo. The default
|
||||
# './build.sh' should work for typical Arcade repositories, but this is customizable for
|
||||
# difficult situations.
|
||||
# jobProperties: {}
|
||||
# A list of job properties to inject at the top level, for potential extensibility beyond
|
||||
# container and pool.
|
||||
platform: {}
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
|
||||
displayName: Source-Build (${{ parameters.platform.name }})
|
||||
|
||||
${{ each property in parameters.platform.jobProperties }}:
|
||||
${{ property.key }}: ${{ property.value }}
|
||||
|
||||
${{ if ne(parameters.platform.container, '') }}:
|
||||
container: ${{ parameters.platform.container }}
|
||||
|
||||
${{ if eq(parameters.platform.pool, '') }}:
|
||||
# The default VM host AzDO pool. This should be capable of running Docker containers: almost all
|
||||
# source-build builds run in Docker, including the default managed platform.
|
||||
# /eng/common/templates-official/variables/pool-providers.yml can't be used here (some customers declare variables already), so duplicate its logic
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')]
|
||||
image: 1es-mariner-2
|
||||
os: linux
|
||||
|
||||
${{ if ne(parameters.platform.pool, '') }}:
|
||||
pool: ${{ parameters.platform.pool }}
|
||||
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
steps:
|
||||
- template: /eng/common/templates-official/steps/source-build.yml
|
||||
parameters:
|
||||
platform: ${{ parameters.platform }}
|
85
eng/common/templates-official/job/source-index-stage1.yml
Normal file
85
eng/common/templates-official/job/source-index-stage1.yml
Normal file
|
@ -0,0 +1,85 @@
|
|||
parameters:
|
||||
runAsPublic: false
|
||||
sourceIndexUploadPackageVersion: 2.0.0-20240502.12
|
||||
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
|
||||
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
|
||||
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
|
||||
preSteps: []
|
||||
binlogPath: artifacts/log/Debug/Build.binlog
|
||||
condition: ''
|
||||
dependsOn: ''
|
||||
pool: ''
|
||||
|
||||
jobs:
|
||||
- job: SourceIndexStage1
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
condition: ${{ parameters.condition }}
|
||||
variables:
|
||||
- name: SourceIndexUploadPackageVersion
|
||||
value: ${{ parameters.sourceIndexUploadPackageVersion }}
|
||||
- name: SourceIndexProcessBinlogPackageVersion
|
||||
value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }}
|
||||
- name: SourceIndexPackageSource
|
||||
value: ${{ parameters.sourceIndexPackageSource }}
|
||||
- name: BinlogPath
|
||||
value: ${{ parameters.binlogPath }}
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if eq(parameters.pool, '') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
steps:
|
||||
- ${{ each preStep in parameters.preSteps }}:
|
||||
- ${{ preStep }}
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Use .NET 8 SDK
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: 8.0.x
|
||||
installationPath: $(Agent.TempDirectory)/dotnet
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
||||
- script: |
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
displayName: Download Tools
|
||||
# Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
||||
- script: ${{ parameters.sourceIndexBuildCommand }}
|
||||
displayName: Build Repository
|
||||
|
||||
- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
|
||||
displayName: Process Binlog into indexable sln
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: AzureCLI@2
|
||||
displayName: Get stage 1 auth token
|
||||
inputs:
|
||||
azureSubscription: 'SourceDotNet Stage1 Publish'
|
||||
addSpnToEnvironment: true
|
||||
scriptType: 'ps'
|
||||
scriptLocation: 'inlineScript'
|
||||
inlineScript: |
|
||||
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$env:servicePrincipalId"
|
||||
echo "##vso[task.setvariable variable=ARM_ID_TOKEN]$env:idToken"
|
||||
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$env:tenantId"
|
||||
|
||||
- script: |
|
||||
echo "Client ID: $(ARM_CLIENT_ID)"
|
||||
echo "ID Token: $(ARM_ID_TOKEN)"
|
||||
echo "Tenant ID: $(ARM_TENANT_ID)"
|
||||
az login --service-principal -u $(ARM_CLIENT_ID) --tenant $(ARM_TENANT_ID) --allow-no-subscriptions --federated-token $(ARM_ID_TOKEN)
|
||||
displayName: "Login to Azure"
|
||||
|
||||
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
|
||||
displayName: Upload stage1 artifacts to source index
|
31
eng/common/templates-official/jobs/codeql-build.yml
Normal file
31
eng/common/templates-official/jobs/codeql-build.yml
Normal file
|
@ -0,0 +1,31 @@
|
|||
parameters:
|
||||
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
|
||||
continueOnError: false
|
||||
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
|
||||
jobs: []
|
||||
# Optional: if specified, restore and use this version of Guardian instead of the default.
|
||||
overrideGuardianVersion: ''
|
||||
|
||||
jobs:
|
||||
- template: /eng/common/templates-official/jobs/jobs.yml
|
||||
parameters:
|
||||
enableMicrobuild: false
|
||||
enablePublishBuildArtifacts: false
|
||||
enablePublishTestResults: false
|
||||
enablePublishBuildAssets: false
|
||||
enablePublishUsingPipelines: false
|
||||
enableTelemetry: true
|
||||
|
||||
variables:
|
||||
- group: Publish-Build-Assets
|
||||
# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in
|
||||
# sync with the packages.config file.
|
||||
- name: DefaultGuardianVersion
|
||||
value: 0.109.0
|
||||
- name: GuardianPackagesConfigFile
|
||||
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
|
||||
- name: GuardianVersion
|
||||
value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }}
|
||||
|
||||
jobs: ${{ parameters.jobs }}
|
||||
|
97
eng/common/templates-official/jobs/jobs.yml
Normal file
97
eng/common/templates-official/jobs/jobs.yml
Normal file
|
@ -0,0 +1,97 @@
|
|||
parameters:
|
||||
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
|
||||
continueOnError: false
|
||||
|
||||
# Optional: Include PublishBuildArtifacts task
|
||||
enablePublishBuildArtifacts: false
|
||||
|
||||
# Optional: Enable publishing using release pipelines
|
||||
enablePublishUsingPipelines: false
|
||||
|
||||
# Optional: Enable running the source-build jobs to build repo from source
|
||||
enableSourceBuild: false
|
||||
|
||||
# Optional: Parameters for source-build template.
|
||||
# See /eng/common/templates-official/jobs/source-build.yml for options
|
||||
sourceBuildParameters: []
|
||||
|
||||
graphFileGeneration:
|
||||
# Optional: Enable generating the graph files at the end of the build
|
||||
enabled: false
|
||||
# Optional: Include toolset dependencies in the generated graph files
|
||||
includeToolset: false
|
||||
|
||||
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
|
||||
jobs: []
|
||||
|
||||
# Optional: Override automatically derived dependsOn value for "publish build assets" job
|
||||
publishBuildAssetsDependsOn: ''
|
||||
|
||||
# Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage.
|
||||
publishAssetsImmediately: false
|
||||
|
||||
# Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml)
|
||||
artifactsPublishingAdditionalParameters: ''
|
||||
signingValidationAdditionalParameters: ''
|
||||
|
||||
# Optional: should run as a public build even in the internal project
|
||||
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
|
||||
runAsPublic: false
|
||||
|
||||
enableSourceIndex: false
|
||||
sourceIndexParams: {}
|
||||
|
||||
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
|
||||
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- template: ../job/job.yml
|
||||
parameters:
|
||||
# pass along parameters
|
||||
${{ each parameter in parameters }}:
|
||||
${{ if ne(parameter.key, 'jobs') }}:
|
||||
${{ parameter.key }}: ${{ parameter.value }}
|
||||
|
||||
# pass along job properties
|
||||
${{ each property in job }}:
|
||||
${{ if ne(property.key, 'job') }}:
|
||||
${{ property.key }}: ${{ property.value }}
|
||||
|
||||
name: ${{ job.job }}
|
||||
|
||||
- ${{ if eq(parameters.enableSourceBuild, true) }}:
|
||||
- template: /eng/common/templates-official/jobs/source-build.yml
|
||||
parameters:
|
||||
allCompletedJobId: Source_Build_Complete
|
||||
${{ each parameter in parameters.sourceBuildParameters }}:
|
||||
${{ parameter.key }}: ${{ parameter.value }}
|
||||
|
||||
- ${{ if eq(parameters.enableSourceIndex, 'true') }}:
|
||||
- template: ../job/source-index-stage1.yml
|
||||
parameters:
|
||||
runAsPublic: ${{ parameters.runAsPublic }}
|
||||
${{ each parameter in parameters.sourceIndexParams }}:
|
||||
${{ parameter.key }}: ${{ parameter.value }}
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
|
||||
- template: ../job/publish-build-assets.yml
|
||||
parameters:
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
dependsOn:
|
||||
- ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}:
|
||||
- ${{ each job in parameters.publishBuildAssetsDependsOn }}:
|
||||
- ${{ job.job }}
|
||||
- ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- ${{ job.job }}
|
||||
- ${{ if eq(parameters.enableSourceBuild, true) }}:
|
||||
- Source_Build_Complete
|
||||
|
||||
runAsPublic: ${{ parameters.runAsPublic }}
|
||||
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
|
||||
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
|
||||
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
|
||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}
|
46
eng/common/templates-official/jobs/source-build.yml
Normal file
46
eng/common/templates-official/jobs/source-build.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
parameters:
|
||||
# This template adds arcade-powered source-build to CI. A job is created for each platform, as
|
||||
# well as an optional server job that completes when all platform jobs complete.
|
||||
|
||||
# The name of the "join" job for all source-build platforms. If set to empty string, the job is
|
||||
# not included. Existing repo pipelines can use this job depend on all source-build jobs
|
||||
# completing without maintaining a separate list of every single job ID: just depend on this one
|
||||
# server job. By default, not included. Recommended name if used: 'Source_Build_Complete'.
|
||||
allCompletedJobId: ''
|
||||
|
||||
# See /eng/common/templates-official/job/source-build.yml
|
||||
jobNamePrefix: 'Source_Build'
|
||||
|
||||
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
|
||||
defaultManagedPlatform:
|
||||
name: 'Managed'
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
|
||||
|
||||
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
|
||||
# object in this array is sent to the job template as 'platform'. If no platforms are specified,
|
||||
# one job runs on 'defaultManagedPlatform'.
|
||||
platforms: []
|
||||
|
||||
jobs:
|
||||
|
||||
- ${{ if ne(parameters.allCompletedJobId, '') }}:
|
||||
- job: ${{ parameters.allCompletedJobId }}
|
||||
displayName: Source-Build Complete
|
||||
pool: server
|
||||
dependsOn:
|
||||
- ${{ each platform in parameters.platforms }}:
|
||||
- ${{ parameters.jobNamePrefix }}_${{ platform.name }}
|
||||
- ${{ if eq(length(parameters.platforms), 0) }}:
|
||||
- ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }}
|
||||
|
||||
- ${{ each platform in parameters.platforms }}:
|
||||
- template: /eng/common/templates-official/job/source-build.yml
|
||||
parameters:
|
||||
jobNamePrefix: ${{ parameters.jobNamePrefix }}
|
||||
platform: ${{ platform }}
|
||||
|
||||
- ${{ if eq(length(parameters.platforms), 0) }}:
|
||||
- template: /eng/common/templates-official/job/source-build.yml
|
||||
parameters:
|
||||
jobNamePrefix: ${{ parameters.jobNamePrefix }}
|
||||
platform: ${{ parameters.defaultManagedPlatform }}
|
|
@ -0,0 +1,22 @@
|
|||
variables:
|
||||
- group: Publish-Build-Assets
|
||||
|
||||
# Whether the build is internal or not
|
||||
- name: IsInternalBuild
|
||||
value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }}
|
||||
|
||||
# Default Maestro++ API Endpoint and API Version
|
||||
- name: MaestroApiEndPoint
|
||||
value: "https://maestro-prod.westus2.cloudapp.azure.com"
|
||||
- name: MaestroApiAccessToken
|
||||
value: $(MaestroAccessToken)
|
||||
- name: MaestroApiVersion
|
||||
value: "2020-02-20"
|
||||
|
||||
- name: SourceLinkCLIVersion
|
||||
value: 3.0.0
|
||||
- name: SymbolToolVersion
|
||||
value: 1.0.1
|
||||
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
285
eng/common/templates-official/post-build/post-build.yml
Normal file
285
eng/common/templates-official/post-build/post-build.yml
Normal file
|
@ -0,0 +1,285 @@
|
|||
parameters:
|
||||
# Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST.
|
||||
# Publishing V1 is no longer supported
|
||||
# Publishing V2 is no longer supported
|
||||
# Publishing V3 is the default
|
||||
- name: publishingInfraVersion
|
||||
displayName: Which version of publishing should be used to promote the build definition?
|
||||
type: number
|
||||
default: 3
|
||||
values:
|
||||
- 3
|
||||
|
||||
- name: BARBuildId
|
||||
displayName: BAR Build Id
|
||||
type: number
|
||||
default: 0
|
||||
|
||||
- name: PromoteToChannelIds
|
||||
displayName: Channel to promote BARBuildId to
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
- name: enableSourceLinkValidation
|
||||
displayName: Enable SourceLink validation
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
- name: enableSigningValidation
|
||||
displayName: Enable signing validation
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
- name: enableSymbolValidation
|
||||
displayName: Enable symbol validation
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
- name: enableNugetValidation
|
||||
displayName: Enable NuGet validation
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
- name: publishInstallersAndChecksums
|
||||
displayName: Publish installers and checksums
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
- name: SDLValidationParameters
|
||||
type: object
|
||||
default:
|
||||
enable: false
|
||||
publishGdn: false
|
||||
continueOnError: false
|
||||
params: ''
|
||||
artifactNames: ''
|
||||
downloadArtifacts: true
|
||||
|
||||
# These parameters let the user customize the call to sdk-task.ps1 for publishing
|
||||
# symbols & general artifacts as well as for signing validation
|
||||
- name: symbolPublishingAdditionalParameters
|
||||
displayName: Symbol publishing additional parameters
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
- name: artifactsPublishingAdditionalParameters
|
||||
displayName: Artifact publishing additional parameters
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
- name: signingValidationAdditionalParameters
|
||||
displayName: Signing validation additional parameters
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Which stages should finish execution before post-build stages start
|
||||
- name: validateDependsOn
|
||||
type: object
|
||||
default:
|
||||
- build
|
||||
|
||||
- name: publishDependsOn
|
||||
type: object
|
||||
default:
|
||||
- Validate
|
||||
|
||||
# Optional: Call asset publishing rather than running in a separate stage
|
||||
- name: publishAssetsImmediately
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
stages:
|
||||
- ${{ if or(eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
|
||||
- stage: Validate
|
||||
dependsOn: ${{ parameters.validateDependsOn }}
|
||||
displayName: Validate Build Assets
|
||||
variables:
|
||||
- template: common-variables.yml
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
jobs:
|
||||
- job:
|
||||
displayName: NuGet Validation
|
||||
condition: and(succeededOrFailed(), eq( ${{ parameters.enableNugetValidation }}, 'true'))
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Package Artifacts
|
||||
inputs:
|
||||
buildType: specific
|
||||
buildVersionToDownload: specific
|
||||
project: $(AzDOProjectName)
|
||||
pipeline: $(AzDOPipelineId)
|
||||
buildId: $(AzDOBuildId)
|
||||
artifactName: PackageArtifacts
|
||||
checkDownloadedFiles: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Validate
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
|
||||
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
|
||||
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/
|
||||
|
||||
- job:
|
||||
displayName: Signing Validation
|
||||
condition: and( eq( ${{ parameters.enableSigningValidation }}, 'true'), ne( variables['PostBuildSign'], 'true'))
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Package Artifacts
|
||||
inputs:
|
||||
buildType: specific
|
||||
buildVersionToDownload: specific
|
||||
project: $(AzDOProjectName)
|
||||
pipeline: $(AzDOPipelineId)
|
||||
buildId: $(AzDOBuildId)
|
||||
artifactName: PackageArtifacts
|
||||
checkDownloadedFiles: true
|
||||
itemPattern: |
|
||||
**
|
||||
!**/Microsoft.SourceBuild.Intermediate.*.nupkg
|
||||
|
||||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
||||
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
|
||||
# otherwise it'll complain about accessing a private feed.
|
||||
- task: NuGetAuthenticate@1
|
||||
displayName: 'Authenticate to AzDO Feeds'
|
||||
|
||||
# Signing validation will optionally work with the buildmanifest file which is downloaded from
|
||||
# Azure DevOps above.
|
||||
- task: PowerShell@2
|
||||
displayName: Validate
|
||||
inputs:
|
||||
filePath: eng\common\sdk-task.ps1
|
||||
arguments: -task SigningValidation -restore -msbuildEngine vs
|
||||
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
|
||||
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
|
||||
${{ parameters.signingValidationAdditionalParameters }}
|
||||
|
||||
- template: ../steps/publish-logs.yml
|
||||
parameters:
|
||||
StageLabel: 'Validation'
|
||||
JobLabel: 'Signing'
|
||||
BinlogToolVersion: $(BinlogToolVersion)
|
||||
|
||||
- job:
|
||||
displayName: SourceLink Validation
|
||||
condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true')
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Blob Artifacts
|
||||
inputs:
|
||||
buildType: specific
|
||||
buildVersionToDownload: specific
|
||||
project: $(AzDOProjectName)
|
||||
pipeline: $(AzDOPipelineId)
|
||||
buildId: $(AzDOBuildId)
|
||||
artifactName: BlobArtifacts
|
||||
checkDownloadedFiles: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Validate
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1
|
||||
arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||
-ExtractPath $(Agent.BuildDirectory)/Extract/
|
||||
-GHRepoName $(Build.Repository.Name)
|
||||
-GHCommit $(Build.SourceVersion)
|
||||
-SourcelinkCliVersion $(SourceLinkCLIVersion)
|
||||
continueOnError: true
|
||||
|
||||
- ${{ if ne(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- stage: publish_using_darc
|
||||
${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
|
||||
dependsOn: ${{ parameters.publishDependsOn }}
|
||||
${{ else }}:
|
||||
dependsOn: ${{ parameters.validateDependsOn }}
|
||||
displayName: Publish using Darc
|
||||
variables:
|
||||
- template: common-variables.yml
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
jobs:
|
||||
- job:
|
||||
displayName: Publish Using Darc
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
image: windows.vs2019.amd64
|
||||
os: windows
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-MaestroToken '$(MaestroApiAccessToken)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
|
@ -0,0 +1,70 @@
|
|||
parameters:
|
||||
BARBuildId: ''
|
||||
PromoteToChannelIds: ''
|
||||
|
||||
steps:
|
||||
- ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}:
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Release Configs
|
||||
inputs:
|
||||
buildType: current
|
||||
artifactName: ReleaseConfigs
|
||||
checkDownloadedFiles: true
|
||||
|
||||
- task: PowerShell@2
|
||||
name: setReleaseVars
|
||||
displayName: Set Release Configs Vars
|
||||
inputs:
|
||||
targetType: inline
|
||||
pwsh: true
|
||||
script: |
|
||||
try {
|
||||
if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') {
|
||||
$Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt
|
||||
|
||||
$BarId = $Content | Select -Index 0
|
||||
$Channels = $Content | Select -Index 1
|
||||
$IsStableBuild = $Content | Select -Index 2
|
||||
|
||||
$AzureDevOpsProject = $Env:System_TeamProject
|
||||
$AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId
|
||||
$AzureDevOpsBuildId = $Env:Build_BuildId
|
||||
}
|
||||
else {
|
||||
$buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}"
|
||||
|
||||
$apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]'
|
||||
$apiHeaders.Add('Accept', 'application/json')
|
||||
$apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}")
|
||||
|
||||
$buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
|
||||
|
||||
$BarId = $Env:BARBuildId
|
||||
$Channels = $Env:PromoteToMaestroChannels -split ","
|
||||
$Channels = $Channels -join "]["
|
||||
$Channels = "[$Channels]"
|
||||
|
||||
$IsStableBuild = $buildInfo.stable
|
||||
$AzureDevOpsProject = $buildInfo.azureDevOpsProject
|
||||
$AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId
|
||||
$AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId
|
||||
}
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=BARBuildId]$BarId"
|
||||
Write-Host "##vso[task.setvariable variable=TargetChannels]$Channels"
|
||||
Write-Host "##vso[task.setvariable variable=IsStableBuild]$IsStableBuild"
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=AzDOProjectName]$AzureDevOpsProject"
|
||||
Write-Host "##vso[task.setvariable variable=AzDOPipelineId]$AzureDevOpsBuildDefinitionId"
|
||||
Write-Host "##vso[task.setvariable variable=AzDOBuildId]$AzureDevOpsBuildId"
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
exit 1
|
||||
}
|
||||
env:
|
||||
MAESTRO_API_TOKEN: $(MaestroApiAccessToken)
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }}
|
|
@ -0,0 +1,13 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Triggering subscriptions
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1
|
||||
arguments: -SourceRepo $(Build.Repository.Uri)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
13
eng/common/templates-official/steps/add-build-to-channel.yml
Normal file
13
eng/common/templates-official/steps/add-build-to-channel.yml
Normal file
|
@ -0,0 +1,13 @@
|
|||
parameters:
|
||||
ChannelId: 0
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Add Build to Channel
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-ChannelId ${{ parameters.ChannelId }}
|
||||
-MaestroApiAccessToken $(MaestroApiAccessToken)
|
||||
-MaestroApiEndPoint $(MaestroApiEndPoint)
|
||||
-MaestroApiVersion $(MaestroApiVersion)
|
12
eng/common/templates-official/steps/build-reason.yml
Normal file
12
eng/common/templates-official/steps/build-reason.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
# build-reason.yml
|
||||
# Description: runs steps if build.reason condition is valid. conditions is a string of valid build reasons
|
||||
# to include steps (',' separated).
|
||||
parameters:
|
||||
conditions: ''
|
||||
steps: []
|
||||
|
||||
steps:
|
||||
- ${{ if and( not(startsWith(parameters.conditions, 'not')), contains(parameters.conditions, variables['build.reason'])) }}:
|
||||
- ${{ parameters.steps }}
|
||||
- ${{ if and( startsWith(parameters.conditions, 'not'), not(contains(parameters.conditions, variables['build.reason']))) }}:
|
||||
- ${{ parameters.steps }}
|
13
eng/common/templates-official/steps/component-governance.yml
Normal file
13
eng/common/templates-official/steps/component-governance.yml
Normal file
|
@ -0,0 +1,13 @@
|
|||
parameters:
|
||||
disableComponentGovernance: false
|
||||
componentGovernanceIgnoreDirectories: ''
|
||||
|
||||
steps:
|
||||
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
|
||||
- script: echo "##vso[task.setvariable variable=skipComponentGovernanceDetection]true"
|
||||
displayName: Set skipComponentGovernanceDetection variable
|
||||
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
continueOnError: true
|
||||
inputs:
|
||||
ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
|
32
eng/common/templates-official/steps/execute-codeql.yml
Normal file
32
eng/common/templates-official/steps/execute-codeql.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
parameters:
|
||||
# Language that should be analyzed. Defaults to csharp
|
||||
language: csharp
|
||||
# Build Commands
|
||||
buildCommands: ''
|
||||
overrideParameters: '' # Optional: to override values for parameters.
|
||||
additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")'
|
||||
# Optional: if specified, restore and use this version of Guardian instead of the default.
|
||||
overrideGuardianVersion: ''
|
||||
# Optional: if true, publish the '.gdn' folder as a pipeline artifact. This can help with in-depth
|
||||
# diagnosis of problems with specific tool configurations.
|
||||
publishGuardianDirectoryToPipeline: false
|
||||
# The script to run to execute all SDL tools. Use this if you want to use a script to define SDL
|
||||
# parameters rather than relying on YAML. It may be better to use a local script, because you can
|
||||
# reproduce results locally without piecing together a command based on the YAML.
|
||||
executeAllSdlToolsScript: 'eng/common/sdl/execute-all-sdl-tools.ps1'
|
||||
# There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named
|
||||
# 'continueOnError', the parameter value is not correctly picked up.
|
||||
# This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter
|
||||
# optional: determines whether to continue the build if the step errors;
|
||||
sdlContinueOnError: false
|
||||
|
||||
steps:
|
||||
- template: /eng/common/templates-official/steps/execute-sdl.yml
|
||||
parameters:
|
||||
overrideGuardianVersion: ${{ parameters.overrideGuardianVersion }}
|
||||
executeAllSdlToolsScript: ${{ parameters.executeAllSdlToolsScript }}
|
||||
overrideParameters: ${{ parameters.overrideParameters }}
|
||||
additionalParameters: '${{ parameters.additionalParameters }}
|
||||
-CodeQLAdditionalRunConfigParams @("BuildCommands < ${{ parameters.buildCommands }}", "Language < ${{ parameters.language }}")'
|
||||
publishGuardianDirectoryToPipeline: ${{ parameters.publishGuardianDirectoryToPipeline }}
|
||||
sdlContinueOnError: ${{ parameters.sdlContinueOnError }}
|
88
eng/common/templates-official/steps/execute-sdl.yml
Normal file
88
eng/common/templates-official/steps/execute-sdl.yml
Normal file
|
@ -0,0 +1,88 @@
|
|||
parameters:
|
||||
overrideGuardianVersion: ''
|
||||
executeAllSdlToolsScript: ''
|
||||
overrideParameters: ''
|
||||
additionalParameters: ''
|
||||
publishGuardianDirectoryToPipeline: false
|
||||
sdlContinueOnError: false
|
||||
condition: ''
|
||||
|
||||
steps:
|
||||
- task: NuGetAuthenticate@1
|
||||
inputs:
|
||||
nuGetServiceConnections: GuardianConnect
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Install NuGet.exe'
|
||||
|
||||
- ${{ if ne(parameters.overrideGuardianVersion, '') }}:
|
||||
- pwsh: |
|
||||
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
|
||||
. .\sdl.ps1
|
||||
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }}
|
||||
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
|
||||
displayName: Install Guardian (Overridden)
|
||||
|
||||
- ${{ if eq(parameters.overrideGuardianVersion, '') }}:
|
||||
- pwsh: |
|
||||
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
|
||||
. .\sdl.ps1
|
||||
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts
|
||||
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
|
||||
displayName: Install Guardian
|
||||
|
||||
- ${{ if ne(parameters.overrideParameters, '') }}:
|
||||
- powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
|
||||
displayName: Execute SDL (Overridden)
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- ${{ if eq(parameters.overrideParameters, '') }}:
|
||||
- powershell: ${{ parameters.executeAllSdlToolsScript }}
|
||||
-GuardianCliLocation $(GuardianCliLocation)
|
||||
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
|
||||
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
|
||||
${{ parameters.additionalParameters }}
|
||||
displayName: Execute SDL
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- ${{ if ne(parameters.publishGuardianDirectoryToPipeline, 'false') }}:
|
||||
# We want to publish the Guardian results and configuration for easy diagnosis. However, the
|
||||
# '.gdn' dir is a mix of configuration, results, extracted dependencies, and Guardian default
|
||||
# tooling files. Some of these files are large and aren't useful during an investigation, so
|
||||
# exclude them by simply deleting them before publishing. (As of writing, there is no documented
|
||||
# way to selectively exclude a dir from the pipeline artifact publish task.)
|
||||
- task: DeleteFiles@1
|
||||
displayName: Delete Guardian dependencies to avoid uploading
|
||||
inputs:
|
||||
SourceFolder: $(Agent.BuildDirectory)/.gdn
|
||||
Contents: |
|
||||
c
|
||||
i
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/.gdn
|
||||
artifact: GuardianConfiguration
|
||||
displayName: Publish GuardianConfiguration
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
|
||||
# with the "SARIF SAST Scans Tab" Azure DevOps extension
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy SARIF files
|
||||
inputs:
|
||||
flattenFolders: true
|
||||
sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/
|
||||
contents: '**/*.sarif'
|
||||
targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Use PublishBuildArtifacts because the SARIF extension only checks this case
|
||||
# see microsoft/sarif-azuredevops-extension#4
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish SARIF files to CodeAnalysisLogs container
|
||||
inputs:
|
||||
pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs
|
||||
artifactName: CodeAnalysisLogs
|
||||
condition: succeededOrFailed()
|
48
eng/common/templates-official/steps/generate-sbom.yml
Normal file
48
eng/common/templates-official/steps/generate-sbom.yml
Normal file
|
@ -0,0 +1,48 @@
|
|||
# BuildDropPath - The root folder of the drop directory for which the manifest file will be generated.
|
||||
# PackageName - The name of the package this SBOM represents.
|
||||
# PackageVersion - The version of the package this SBOM represents.
|
||||
# ManifestDirPath - The path of the directory where the generated manifest files will be placed
|
||||
# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector.
|
||||
|
||||
parameters:
|
||||
PackageVersion: 8.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
PackageName: '.NET'
|
||||
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
|
||||
IgnoreDirectories: ''
|
||||
sbomContinueOnError: true
|
||||
|
||||
steps:
|
||||
- task: PowerShell@2
|
||||
displayName: Prep for SBOM generation in (Non-linux)
|
||||
condition: or(eq(variables['Agent.Os'], 'Windows_NT'), eq(variables['Agent.Os'], 'Darwin'))
|
||||
inputs:
|
||||
filePath: ./eng/common/generate-sbom-prep.ps1
|
||||
arguments: ${{parameters.manifestDirPath}}
|
||||
|
||||
# Chmodding is a workaround for https://github.com/dotnet/arcade/issues/8461
|
||||
- script: |
|
||||
chmod +x ./eng/common/generate-sbom-prep.sh
|
||||
./eng/common/generate-sbom-prep.sh ${{parameters.manifestDirPath}}
|
||||
displayName: Prep for SBOM generation in (Linux)
|
||||
condition: eq(variables['Agent.Os'], 'Linux')
|
||||
continueOnError: ${{ parameters.sbomContinueOnError }}
|
||||
|
||||
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
|
||||
displayName: 'Generate SBOM manifest'
|
||||
continueOnError: ${{ parameters.sbomContinueOnError }}
|
||||
inputs:
|
||||
PackageName: ${{ parameters.packageName }}
|
||||
BuildDropPath: ${{ parameters.buildDropPath }}
|
||||
PackageVersion: ${{ parameters.packageVersion }}
|
||||
ManifestDirPath: ${{ parameters.manifestDirPath }}
|
||||
${{ if ne(parameters.IgnoreDirectories, '') }}:
|
||||
AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}'
|
||||
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
displayName: Publish SBOM manifest
|
||||
continueOnError: ${{parameters.sbomContinueOnError}}
|
||||
inputs:
|
||||
targetPath: '${{parameters.manifestDirPath}}'
|
||||
artifactName: $(ARTIFACT_NAME)
|
||||
|
23
eng/common/templates-official/steps/publish-logs.yml
Normal file
23
eng/common/templates-official/steps/publish-logs.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
parameters:
|
||||
StageLabel: ''
|
||||
JobLabel: ''
|
||||
|
||||
steps:
|
||||
- task: Powershell@2
|
||||
displayName: Prepare Binlogs to Upload
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
|
||||
Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish Logs
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs'
|
||||
PublishLocation: Container
|
||||
ArtifactName: PostBuildLogs
|
||||
continueOnError: true
|
||||
condition: always()
|
28
eng/common/templates-official/steps/retain-build.yml
Normal file
28
eng/common/templates-official/steps/retain-build.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
parameters:
|
||||
# Optional azure devops PAT with build execute permissions for the build's organization,
|
||||
# only needed if the build that should be retained ran on a different organization than
|
||||
# the pipeline where this template is executing from
|
||||
Token: ''
|
||||
# Optional BuildId to retain, defaults to the current running build
|
||||
BuildId: ''
|
||||
# Azure devops Organization URI for the build in the https://dev.azure.com/<organization> format.
|
||||
# Defaults to the organization the current pipeline is running on
|
||||
AzdoOrgUri: '$(System.CollectionUri)'
|
||||
# Azure devops project for the build. Defaults to the project the current pipeline is running on
|
||||
AzdoProject: '$(System.TeamProject)'
|
||||
|
||||
steps:
|
||||
- task: powershell@2
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: eng/common/retain-build.ps1
|
||||
pwsh: true
|
||||
arguments: >
|
||||
-AzdoOrgUri: ${{parameters.AzdoOrgUri}}
|
||||
-AzdoProject ${{parameters.AzdoProject}}
|
||||
-Token ${{coalesce(parameters.Token, '$env:SYSTEM_ACCESSTOKEN') }}
|
||||
-BuildId ${{coalesce(parameters.BuildId, '$env:BUILD_ID')}}
|
||||
displayName: Enable permanent build retention
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
BUILD_ID: $(Build.BuildId)
|
91
eng/common/templates-official/steps/send-to-helix.yml
Normal file
91
eng/common/templates-official/steps/send-to-helix.yml
Normal file
|
@ -0,0 +1,91 @@
|
|||
# Please remember to update the documentation if you make changes to these parameters!
|
||||
parameters:
|
||||
HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/
|
||||
HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
|
||||
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
|
||||
HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
|
||||
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
|
||||
HelixConfiguration: '' # optional -- additional property attached to a job
|
||||
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
|
||||
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
|
||||
WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
|
||||
WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
|
||||
WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
|
||||
CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload
|
||||
XUnitProjects: '' # optional -- semicolon-delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
|
||||
XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
|
||||
XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects
|
||||
XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner
|
||||
XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
|
||||
IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion
|
||||
DotNetCliPackageType: '' # optional -- either 'sdk', 'runtime' or 'aspnetcore-runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json
|
||||
DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json
|
||||
WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
|
||||
IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
|
||||
HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net )
|
||||
Creator: '' # optional -- if the build is external, use this to specify who is sending the job
|
||||
DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO
|
||||
condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
|
||||
continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
|
||||
|
||||
steps:
|
||||
- powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
|
||||
displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
|
||||
env:
|
||||
BuildConfig: $(_BuildConfig)
|
||||
HelixSource: ${{ parameters.HelixSource }}
|
||||
HelixType: ${{ parameters.HelixType }}
|
||||
HelixBuild: ${{ parameters.HelixBuild }}
|
||||
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||
HelixPostCommands: ${{ parameters.HelixPostCommands }}
|
||||
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
|
||||
WorkItemCommand: ${{ parameters.WorkItemCommand }}
|
||||
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
|
||||
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
|
||||
XUnitProjects: ${{ parameters.XUnitProjects }}
|
||||
XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
|
||||
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
|
||||
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
|
||||
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
|
||||
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
|
||||
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
|
||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||
Creator: ${{ parameters.Creator }}
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
- script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
|
||||
displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
|
||||
env:
|
||||
BuildConfig: $(_BuildConfig)
|
||||
HelixSource: ${{ parameters.HelixSource }}
|
||||
HelixType: ${{ parameters.HelixType }}
|
||||
HelixBuild: ${{ parameters.HelixBuild }}
|
||||
HelixConfiguration: ${{ parameters.HelixConfiguration }}
|
||||
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
|
||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||
HelixPostCommands: ${{ parameters.HelixPostCommands }}
|
||||
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
|
||||
WorkItemCommand: ${{ parameters.WorkItemCommand }}
|
||||
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
|
||||
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
|
||||
XUnitProjects: ${{ parameters.XUnitProjects }}
|
||||
XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
|
||||
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
|
||||
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
|
||||
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
|
||||
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
|
||||
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
|
||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||
Creator: ${{ parameters.Creator }}
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
129
eng/common/templates-official/steps/source-build.yml
Normal file
129
eng/common/templates-official/steps/source-build.yml
Normal file
|
@ -0,0 +1,129 @@
|
|||
parameters:
|
||||
# This template adds arcade-powered source-build to CI.
|
||||
|
||||
# This is a 'steps' template, and is intended for advanced scenarios where the existing build
|
||||
# infra has a careful build methodology that must be followed. For example, a repo
|
||||
# (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline
|
||||
# artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to
|
||||
# GitHub. Using this steps template leaves room for that infra to be included.
|
||||
|
||||
# Defines the platform on which to run the steps. See 'eng/common/templates-official/job/source-build.yml'
|
||||
# for details. The entire object is described in the 'job' template for simplicity, even though
|
||||
# the usage of the properties on this object is split between the 'job' and 'steps' templates.
|
||||
platform: {}
|
||||
|
||||
steps:
|
||||
# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.)
|
||||
- script: |
|
||||
set -x
|
||||
df -h
|
||||
|
||||
# If building on the internal project, the artifact feeds variable may be available (usually only if needed)
|
||||
# In that case, call the feed setup script to add internal feeds corresponding to public ones.
|
||||
# In addition, add an msbuild argument to copy the WIP from the repo to the target build location.
|
||||
# This is because SetupNuGetSources.sh will alter the current NuGet.config file, and we need to preserve those
|
||||
# changes.
|
||||
internalRestoreArgs=
|
||||
if [ '$(dn-bot-dnceng-artifact-feeds-rw)' != '$''(dn-bot-dnceng-artifact-feeds-rw)' ]; then
|
||||
# Temporarily work around https://github.com/dotnet/arcade/issues/7709
|
||||
chmod +x $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
$(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh $(Build.SourcesDirectory)/NuGet.config $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true'
|
||||
|
||||
# The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo.
|
||||
# This only works if there is a username/email configured, which won't be the case in most CI runs.
|
||||
git config --get user.email
|
||||
if [ $? -ne 0 ]; then
|
||||
git config user.email dn-bot@microsoft.com
|
||||
git config user.name dn-bot
|
||||
fi
|
||||
fi
|
||||
|
||||
# If building on the internal project, the internal storage variable may be available (usually only if needed)
|
||||
# In that case, add variables to allow the download of internal runtimes if the specified versions are not found
|
||||
# in the default public locations.
|
||||
internalRuntimeDownloadArgs=
|
||||
if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then
|
||||
internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)'
|
||||
fi
|
||||
|
||||
buildConfig=Release
|
||||
# Check if AzDO substitutes in a build config from a variable, and use it if so.
|
||||
if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then
|
||||
buildConfig='$(_BuildConfig)'
|
||||
fi
|
||||
|
||||
officialBuildArgs=
|
||||
if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then
|
||||
officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)'
|
||||
fi
|
||||
|
||||
targetRidArgs=
|
||||
if [ '${{ parameters.platform.targetRID }}' != '' ]; then
|
||||
targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}'
|
||||
fi
|
||||
|
||||
runtimeOsArgs=
|
||||
if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then
|
||||
runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}'
|
||||
fi
|
||||
|
||||
baseOsArgs=
|
||||
if [ '${{ parameters.platform.baseOS }}' != '' ]; then
|
||||
baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}'
|
||||
fi
|
||||
|
||||
publishArgs=
|
||||
if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then
|
||||
publishArgs='--publish'
|
||||
fi
|
||||
|
||||
assetManifestFileName=SourceBuild_RidSpecific.xml
|
||||
if [ '${{ parameters.platform.name }}' != '' ]; then
|
||||
assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml
|
||||
fi
|
||||
|
||||
${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \
|
||||
--configuration $buildConfig \
|
||||
--restore --build --pack $publishArgs -bl \
|
||||
$officialBuildArgs \
|
||||
$internalRuntimeDownloadArgs \
|
||||
$internalRestoreArgs \
|
||||
$targetRidArgs \
|
||||
$runtimeOsArgs \
|
||||
$baseOsArgs \
|
||||
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
|
||||
/p:ArcadeBuildFromSource=true \
|
||||
/p:AssetManifestFileName=$assetManifestFileName
|
||||
displayName: Build
|
||||
|
||||
# Upload build logs for diagnosis.
|
||||
- task: CopyFiles@2
|
||||
displayName: Prepare BuildLogs staging directory
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)'
|
||||
Contents: |
|
||||
**/*.log
|
||||
**/*.binlog
|
||||
artifacts/source-build/self/prebuilt-report/**
|
||||
TargetFolder: '$(Build.StagingDirectory)/BuildLogs'
|
||||
CleanTargetFolder: true
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
displayName: Publish BuildLogs
|
||||
inputs:
|
||||
targetPath: '$(Build.StagingDirectory)/BuildLogs'
|
||||
artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt)
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Manually inject component detection so that we can ignore the source build upstream cache, which contains
|
||||
# a nupkg cache of input packages (a local feed).
|
||||
# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir'
|
||||
# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
displayName: Component Detection (Exclude upstream cache)
|
||||
inputs:
|
||||
ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
|
45
eng/common/templates-official/variables/pool-providers.yml
Normal file
45
eng/common/templates-official/variables/pool-providers.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool,
|
||||
# otherwise it should go into the "normal" pools. This separates out the queueing and billing of released branches.
|
||||
|
||||
# Motivation:
|
||||
# Once a given branch of a repository's output has been officially "shipped" once, it is then considered to be COGS
|
||||
# (Cost of goods sold) and should be moved to a servicing pool provider. This allows both separation of queueing
|
||||
# (allowing release builds and main PR builds to not intefere with each other) and billing (required for COGS.
|
||||
# Additionally, the pool provider name itself may be subject to change when the .NET Core Engineering Services
|
||||
# team needs to move resources around and create new and potentially differently-named pools. Using this template
|
||||
# file from an Arcade-ified repo helps guard against both having to update one's release/* branches and renaming.
|
||||
|
||||
# How to use:
|
||||
# This yaml assumes your shipped product branches use the naming convention "release/..." (which many do).
|
||||
# If we find alternate naming conventions in broad usage it can be added to the condition below.
|
||||
#
|
||||
# First, import the template in an arcade-ified repo to pick up the variables, e.g.:
|
||||
#
|
||||
# variables:
|
||||
# - template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
#
|
||||
# ... then anywhere specifying the pool provider use the runtime variables,
|
||||
# $(DncEngInternalBuildPool)
|
||||
#
|
||||
# pool:
|
||||
# name: $(DncEngInternalBuildPool)
|
||||
# image: 1es-windows-2022
|
||||
|
||||
variables:
|
||||
# Coalesce the target and source branches so we know when a PR targets a release branch
|
||||
# If these variables are somehow missing, fall back to main (tends to have more capacity)
|
||||
|
||||
# Any new -Svc alternative pools should have variables added here to allow for splitting work
|
||||
|
||||
- name: DncEngInternalBuildPool
|
||||
value: $[
|
||||
replace(
|
||||
replace(
|
||||
eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'),
|
||||
True,
|
||||
'NetCore1ESPool-Svc-Internal'
|
||||
),
|
||||
False,
|
||||
'NetCore1ESPool-Internal'
|
||||
)
|
||||
]
|
|
@ -0,0 +1,7 @@
|
|||
variables:
|
||||
# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in
|
||||
# sync with the packages.config file.
|
||||
- name: DefaultGuardianVersion
|
||||
value: 0.109.0
|
||||
- name: GuardianPackagesConfigFile
|
||||
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
|
|
@ -15,6 +15,7 @@ parameters:
|
|||
timeoutInMinutes: ''
|
||||
variables: []
|
||||
workspace: ''
|
||||
templateContext: ''
|
||||
|
||||
# Job base template specific parameters
|
||||
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
|
||||
|
@ -68,6 +69,9 @@ jobs:
|
|||
${{ if ne(parameters.timeoutInMinutes, '') }}:
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
|
||||
${{ if ne(parameters.templateContext, '') }}:
|
||||
templateContext: ${{ parameters.templateContext }}
|
||||
|
||||
variables:
|
||||
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
|
||||
- name: DOTNET_CLI_TELEMETRY_PROFILE
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
parameters:
|
||||
runAsPublic: false
|
||||
sourceIndexPackageVersion: 1.0.1-20230228.2
|
||||
sourceIndexUploadPackageVersion: 2.0.0-20240502.12
|
||||
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
|
||||
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
|
||||
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
|
||||
preSteps: []
|
||||
|
@ -14,14 +15,14 @@ jobs:
|
|||
dependsOn: ${{ parameters.dependsOn }}
|
||||
condition: ${{ parameters.condition }}
|
||||
variables:
|
||||
- name: SourceIndexPackageVersion
|
||||
value: ${{ parameters.sourceIndexPackageVersion }}
|
||||
- name: SourceIndexUploadPackageVersion
|
||||
value: ${{ parameters.sourceIndexUploadPackageVersion }}
|
||||
- name: SourceIndexProcessBinlogPackageVersion
|
||||
value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }}
|
||||
- name: SourceIndexPackageSource
|
||||
value: ${{ parameters.sourceIndexPackageSource }}
|
||||
- name: BinlogPath
|
||||
value: ${{ parameters.binlogPath }}
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- group: source-dot-net stage1 variables
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
|
@ -40,16 +41,16 @@ jobs:
|
|||
- ${{ preStep }}
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Use .NET Core SDK 6
|
||||
displayName: Use .NET 8 SDK
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: 6.0.x
|
||||
version: 8.0.x
|
||||
installationPath: $(Agent.TempDirectory)/dotnet
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
||||
- script: |
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
$(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
|
||||
displayName: Download Tools
|
||||
# Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
@ -61,7 +62,24 @@ jobs:
|
|||
displayName: Process Binlog into indexable sln
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name)
|
||||
displayName: Upload stage1 artifacts to source index
|
||||
env:
|
||||
BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url)
|
||||
- task: AzureCLI@2
|
||||
displayName: Get stage 1 auth token
|
||||
inputs:
|
||||
azureSubscription: 'SourceDotNet Stage1 Publish'
|
||||
addSpnToEnvironment: true
|
||||
scriptType: 'ps'
|
||||
scriptLocation: 'inlineScript'
|
||||
inlineScript: |
|
||||
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$env:servicePrincipalId"
|
||||
echo "##vso[task.setvariable variable=ARM_ID_TOKEN]$env:idToken"
|
||||
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$env:tenantId"
|
||||
|
||||
- script: |
|
||||
echo "Client ID: $(ARM_CLIENT_ID)"
|
||||
echo "ID Token: $(ARM_ID_TOKEN)"
|
||||
echo "Tenant ID: $(ARM_TENANT_ID)"
|
||||
az login --service-principal -u $(ARM_CLIENT_ID) --tenant $(ARM_TENANT_ID) --allow-no-subscriptions --federated-token $(ARM_ID_TOKEN)
|
||||
displayName: "Login to Azure"
|
||||
|
||||
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
|
||||
displayName: Upload stage1 artifacts to source index
|
|
@ -4,7 +4,7 @@ parameters:
|
|||
|
||||
steps:
|
||||
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
|
||||
- script: "echo ##vso[task.setvariable variable=skipComponentGovernanceDetection]true"
|
||||
- script: echo "##vso[task.setvariable variable=skipComponentGovernanceDetection]true"
|
||||
displayName: Set skipComponentGovernanceDetection variable
|
||||
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector.
|
||||
|
||||
parameters:
|
||||
PackageVersion: 7.0.0
|
||||
PackageVersion: 8.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
PackageName: '.NET'
|
||||
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
|
||||
|
|
|
@ -5,7 +5,7 @@ set -euo pipefail
|
|||
# Install instructions: https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#installation-as-a-library-via-pip
|
||||
|
||||
# See latest release at https://github.com/nexB/scancode-toolkit/releases
|
||||
SCANCODE_VERSION="32.0.8"
|
||||
SCANCODE_VERSION="32.1.0"
|
||||
|
||||
pyEnvPath="/tmp/scancode-env"
|
||||
python3 -m venv $pyEnvPath
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
schedules:
|
||||
- cron: "0 11 * * 1-5"
|
||||
displayName: Run on weekdays at 11am UTC
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- release/*.0.1xx*
|
||||
- internal/release/*.0.1xx*
|
||||
|
||||
pr: none
|
||||
trigger: none
|
||||
|
||||
pool:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals 1es-ubuntu-2004
|
||||
|
||||
parameters:
|
||||
- name: dotnetDotnetRunId
|
||||
displayName: 'Specific dotnet-dotnet run ID number (e.g `2108850`)'
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
jobs:
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: CentOSStream8_Offline_MsftSdk
|
||||
targetRid: centos.8-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: CentOSStream9_Offline_MsftSdk
|
||||
targetRid: centos.9-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Alpine317_Offline_MsftSdk
|
||||
targetRid: alpine.3.17-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Fedora38_Offline_MsftSdk
|
||||
targetRid: fedora.38-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Ubuntu2204_Offline_MsftSdk
|
||||
targetRid: ubuntu.22.04-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Ubuntu2204Arm64_Offline_MsftSdk
|
||||
targetRid: ubuntu.22.04-arm64
|
||||
architecture: arm64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
|
@ -67,7 +67,10 @@ jobs:
|
|||
condition: succeededOrFailed()
|
||||
dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ else }}:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal'), not(startswith(parameters.vmrBranch, 'internal/release/')), not(eq(variables['Build.Reason'], 'PullRequest'))) }}:
|
||||
|
@ -87,8 +90,21 @@ jobs:
|
|||
- name: sourcesPath
|
||||
value: ${{ parameters.vmrPath }}
|
||||
|
||||
templateContext:
|
||||
outputs:
|
||||
- output: pipelineArtifact
|
||||
displayName: 'Publish BuildLogs'
|
||||
condition: succeededOrFailed()
|
||||
targetPath: '$(Build.StagingDirectory)/BuildLogs'
|
||||
artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
- output: pipelineArtifact
|
||||
displayName: 'Publish Artifacts'
|
||||
condition: succeededOrFailed()
|
||||
targetPath: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
|
||||
artifactName: $(Agent.JobName)_Artifacts
|
||||
|
||||
steps:
|
||||
- template: ../steps/vmr-prepare.yml
|
||||
- template: ../steps/vmr-prepare.yml@self
|
||||
parameters:
|
||||
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
vmrBranch: $(System.PullRequest.TargetBranch)
|
||||
|
@ -99,7 +115,7 @@ jobs:
|
|||
|
||||
# Synchronize new content in the VMR during PRs (we expect this to come
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: ../steps/vmr-pull-updates.yml
|
||||
- template: ../steps/vmr-pull-updates.yml@self
|
||||
parameters:
|
||||
vmrPath: ${{ parameters.vmrPath }}
|
||||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
|
@ -148,8 +164,8 @@ jobs:
|
|||
notFoundMessage="No source-built SDK found to download..."
|
||||
|
||||
echo "Looking for source-built SDK to download..."
|
||||
archiveUrlLine=`grep -m 1 "<PrivateSourceBuiltSdkUrl_CentOS8Stream>" "$packageVersionsPath" || :`
|
||||
urlPattern="<PrivateSourceBuiltSdkUrl_CentOS8Stream>(.*)</PrivateSourceBuiltSdkUrl_CentOS8Stream>"
|
||||
archiveUrlLine=`grep -m 1 "<PrivateSourceBuiltSdkUrl>" "$packageVersionsPath" || :`
|
||||
urlPattern="<PrivateSourceBuiltSdkUrl>(.*)</PrivateSourceBuiltSdkUrl>"
|
||||
|
||||
if [[ $archiveUrlLine =~ $urlPattern ]]; then
|
||||
archiveUrl="${BASH_REMATCH[1]}"
|
||||
|
@ -251,11 +267,18 @@ jobs:
|
|||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- publish: '$(Build.StagingDirectory)/BuildLogs'
|
||||
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
displayName: Publish BuildLogs
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- publish: '$(Build.StagingDirectory)/BuildLogs'
|
||||
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
displayName: Publish BuildLogs
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- publish: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
|
||||
artifact: $(Agent.JobName)_Artifacts
|
||||
displayName: Publish Artifacts
|
||||
condition: succeededOrFailed()
|
||||
continueOnError: true
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
|
@ -268,9 +291,3 @@ jobs:
|
|||
mergeTestResults: true
|
||||
publishRunAttachments: true
|
||||
testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName)
|
||||
|
||||
- publish: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
|
||||
artifact: $(Agent.JobName)_Artifacts
|
||||
displayName: Publish Artifacts
|
||||
condition: succeededOrFailed()
|
||||
continueOnError: true
|
||||
|
|
|
@ -19,10 +19,13 @@ parameters:
|
|||
|
||||
jobs:
|
||||
- job: Synchronize_VMR
|
||||
displayName: Synchronize dotnet/dotnet
|
||||
displayName: Synchronize VMR's ${{ parameters.vmrBranch }}
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ else }}:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
- name: vmrPath
|
||||
value: $(Agent.BuildDirectory)/vmr
|
||||
- ${{ if not(parameters.noPush) }}:
|
||||
|
@ -36,14 +39,16 @@ jobs:
|
|||
- group: DotNetBot-AzDO-PAT
|
||||
- name: vmrInternalUrl
|
||||
value: https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-dotnet
|
||||
|
||||
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64
|
||||
demands: ImageOverride -equals 1es-ubuntu-2004
|
||||
os: linux
|
||||
|
||||
steps:
|
||||
- template: ../steps/vmr-prepare.yml
|
||||
|
@ -57,7 +62,6 @@ jobs:
|
|||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
targetRef: ${{ parameters.targetRef }}
|
||||
|
||||
|
||||
- ${{ if and(not(parameters.noPush), not(in(variables['Build.Reason'], 'PullRequest')), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
# Push main and release branches to the public VMR
|
||||
- ${{ if or(eq(parameters.vmrBranch, 'main'), startsWith(parameters.vmrBranch, 'release/')) }}:
|
||||
|
@ -83,4 +87,4 @@ jobs:
|
|||
--azdev-pat '$(dn-bot-dnceng-build-rw-code-rw)'
|
||||
--verbose
|
||||
displayName: Push changes to dotnet-dotnet (internal)
|
||||
workingDirectory: $(Agent.BuildDirectory)/installer
|
||||
workingDirectory: $(Agent.BuildDirectory)/installer
|
||||
|
|
|
@ -2,38 +2,40 @@
|
|||
### If run in a PR, new changes are applied to a local copy of the VMR, then it is source-built and tested
|
||||
|
||||
parameters:
|
||||
dependsOn: []
|
||||
condition: always()
|
||||
- name: dependsOn
|
||||
type: object
|
||||
default: []
|
||||
- name: condition
|
||||
type: string
|
||||
default: always()
|
||||
|
||||
# Branch of the VMR to use (to push to for internal builds)
|
||||
vmrBranch: $(Build.SourceBranch)
|
||||
- name: vmrBranch
|
||||
type: string
|
||||
default: $(Build.SourceBranch)
|
||||
|
||||
# True when build is running from dotnet/dotnet directly
|
||||
isBuiltFromVmr:
|
||||
- name: isBuiltFromVmr
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
# The following parameters aren't expected to be passed in rather they are used for encapsulation
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
alpine317Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.17
|
||||
centOSStream8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
|
||||
centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
|
||||
fedora38Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38
|
||||
ubuntu2204Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
ubuntu2204ArmContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64
|
||||
# These are not expected to be passed it but rather just object variables reused below
|
||||
- name: pool_Linux
|
||||
type: object
|
||||
default:
|
||||
name: $(defaultPoolName)
|
||||
image: $(poolImage_Linux)
|
||||
demands: ImageOverride -equals $(poolImage_Linux)
|
||||
os: linux
|
||||
|
||||
# Internal builds
|
||||
poolInternalAmd64:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
poolInternalAmd64PR:
|
||||
name: NetCore1ESPool-Internal-XL
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
poolInternalArm64:
|
||||
name: Docker-Linux-Arm-Internal
|
||||
|
||||
# Public builds / PRs
|
||||
poolPublicAmd64:
|
||||
name: NetCore-Public-XL
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
- name: pool_LinuxArm64
|
||||
type: object
|
||||
default:
|
||||
name: $(poolName_LinuxArm64)
|
||||
image: $(poolImage_LinuxArm64)
|
||||
demands: ImageOverride -equals $(poolImage_LinuxArm64)
|
||||
hostArchitecture: Arm64
|
||||
os: linux
|
||||
|
||||
stages:
|
||||
- stage: VMR_Source_Build
|
||||
|
@ -41,23 +43,7 @@ stages:
|
|||
dependsOn: ${{ parameters.dependsOn }}
|
||||
condition: ${{ parameters.condition }}
|
||||
variables:
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolPublicAmd64.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolPublicAmd64.demands }}
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolInternalAmd64PR.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolInternalAmd64PR.demands }}
|
||||
- ${{ else }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolInternalAmd64.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolInternalAmd64.demands }}
|
||||
|
||||
- template: ../variables/vmr-build.yml@self
|
||||
- ${{ if ne(parameters.vmrBranch, '') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ parameters.vmrBranch }}
|
||||
|
@ -69,17 +55,15 @@ stages:
|
|||
|
||||
# PR and CI legs ------------------------------------
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Online_MsftSdk
|
||||
buildName: ${{ format('{0}_Online_MsftSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -87,17 +71,15 @@ stages:
|
|||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: true # ✅
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -109,17 +91,15 @@ stages:
|
|||
|
||||
# CI - Stage 1 x64 legs ------------------------------------
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Alpine317_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.alpine317Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.alpineContainer }}
|
||||
buildFromArchive: false # ✅
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -127,17 +107,15 @@ stages:
|
|||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Online_PreviousSourceBuiltSdk
|
||||
buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -145,17 +123,15 @@ stages:
|
|||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: true # ✅
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Offline_PreviousSourceBuiltSdk
|
||||
buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -163,17 +139,15 @@ stages:
|
|||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: true # ✅
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Mono_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}_Mono_Offline_MsftSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: true # ✅
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -181,35 +155,15 @@ stages:
|
|||
useMonoRuntime: true # ✅
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream9_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream9Container }}
|
||||
buildFromArchive: true # ✅
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
runOnline: false # 🚫
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Fedora38_Offline_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.fedora38Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.fedoraContainer }}
|
||||
buildFromArchive: true # ✅
|
||||
enablePoison: true # ✅
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
|
@ -217,17 +171,15 @@ stages:
|
|||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Ubuntu2204_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.ubuntuName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.ubuntu2204Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.ubuntuContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
|
@ -237,15 +189,15 @@ stages:
|
|||
|
||||
# CI - Stage 1 arm64 Legs ------------------------------------
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Ubuntu2204Arm64_Offline_MsftSdk
|
||||
buildName: ${{ format('{0}Arm64_Offline_MsftSdk', variables.ubuntuName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool: ${{ parameters.poolInternalArm64 }}
|
||||
container: ${{ parameters.ubuntu2204ArmContainer }}
|
||||
pool: ${{ parameters.pool_LinuxArm64 }}
|
||||
container: ${{ variables.ubuntuArmContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
|
@ -255,40 +207,36 @@ stages:
|
|||
|
||||
# CI - Stage 2 x64 Legs ------------------------------------
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: CentOSStream8_Online_CurrentSourceBuiltSdk
|
||||
buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.centOSStream8Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStreamContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: false # 🚫
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
reuseBuildArtifactsFrom: CentOSStream8_Online_MsftSdk
|
||||
reuseBuildArtifactsFrom: ${{ format('{0}_Online_MsftSdk', variables.centOSStreamName) }}
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
- template: ../jobs/vmr-build.yml@self
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Fedora38_Offline_CurrentSourceBuiltSdk
|
||||
buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }}
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.fedora38Container }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.fedoraContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
runOnline: false # 🚫
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
reuseBuildArtifactsFrom: Fedora38_Offline_MsftSdk
|
||||
reuseBuildArtifactsFrom: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
|
||||
|
|
54
eng/pipelines/templates/variables/vmr-build.yml
Normal file
54
eng/pipelines/templates/variables/vmr-build.yml
Normal file
|
@ -0,0 +1,54 @@
|
|||
variables:
|
||||
- name: alpineContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
|
||||
- name: centOSStreamContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
|
||||
- name: fedoraContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-40
|
||||
- name: ubuntuContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
- name: ubuntuArmContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64
|
||||
|
||||
- name: alpineName
|
||||
value: Alpine319
|
||||
- name: centOSStreamName
|
||||
value: CentOSStream9
|
||||
- name: fedoraName
|
||||
value: Fedora40
|
||||
- name: ubuntuName
|
||||
value: Ubuntu2204
|
||||
|
||||
- name: alpineX64Rid
|
||||
value: alpine.3.19-x64
|
||||
- name: centOSStreamX64Rid
|
||||
value: centos.9-x64
|
||||
- name: fedoraX64Rid
|
||||
value: fedora.40-x64
|
||||
- name: ubuntux64Rid
|
||||
value: ubuntu.22.04-x64
|
||||
- name: ubuntuArm64Rid
|
||||
value: ubuntu.22.04-arm64
|
||||
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- name: defaultPoolName
|
||||
value: NetCore-Public-XL
|
||||
- name: poolImage_Linux
|
||||
value: 1es-ubuntu-2004-open
|
||||
- name: poolImage_LinuxArm64
|
||||
value: Mariner-2-Docker-ARM64
|
||||
- name: poolName_LinuxArm64
|
||||
value: Docker-Linux-Arm-Public
|
||||
- ${{ else }}:
|
||||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- name: defaultPoolName
|
||||
value: NetCore1ESPool-Internal-XL
|
||||
- ${{ else }}:
|
||||
- name: defaultPoolName
|
||||
value: $(DncEngInternalBuildPool)
|
||||
- name: poolImage_Linux
|
||||
value: 1es-ubuntu-2204
|
||||
- name: poolImage_LinuxArm64
|
||||
value: Mariner-2-Docker-ARM64
|
||||
- name: poolName_LinuxArm64
|
||||
value: Docker-Linux-Arm-Internal
|
|
@ -23,7 +23,7 @@ variables:
|
|||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: release/8.0.1xx
|
||||
value: internal/release/8.0.1xx
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
|
|
56
eng/pipelines/vmr-build-pr.yml
Normal file
56
eng/pipelines/vmr-build-pr.yml
Normal file
|
@ -0,0 +1,56 @@
|
|||
# This is the non-1ES PR pipeline source-building the VMR used in installer PRs
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=233
|
||||
|
||||
trigger: none
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- release/*
|
||||
|
||||
parameters:
|
||||
- name: vmrBranch
|
||||
displayName: dotnet/dotnet branch to push to
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
- name: disableVmrBuild
|
||||
displayName: Skip source-building the VMR
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
variables:
|
||||
- ${{ if ne(parameters.vmrBranch, ' ') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: release/8.0.1xx
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: vmr
|
||||
type: github
|
||||
name: dotnet/dotnet
|
||||
endpoint: dotnet
|
||||
ref: $(VmrBranch)
|
||||
|
||||
stages:
|
||||
# You can temporarily disable the VMR Build stage by setting the disableVmrBuild variable
|
||||
- ${{ if not(parameters.disableVmrBuild) }}:
|
||||
- template: templates/stages/vmr-build.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
isBuiltFromVmr: false
|
||||
|
||||
# In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate
|
||||
# that the PR can be merged and later synchronized into the VMR without problems.
|
||||
- ${{ else }}:
|
||||
- stage: Synchronize_VMR
|
||||
displayName: Synchronize VMR
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
noPush: true
|
|
@ -17,21 +17,48 @@ resources:
|
|||
name: dotnet-dotnet
|
||||
ref: $(Build.SourceBranch)
|
||||
|
||||
- repository: 1ESPipelineTemplates
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
parameters:
|
||||
- name: vmrBranch
|
||||
displayName: dotnet-dotnet branch to push to
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
variables:
|
||||
variables:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml@self
|
||||
|
||||
- ${{ if ne(parameters.vmrBranch, ' ') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
jobs:
|
||||
- template: templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
|
||||
extends:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
||||
parameters:
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
sourceRepositoriesToScan:
|
||||
exclude:
|
||||
- repository: vmr
|
||||
|
||||
componentgovernance:
|
||||
sourceScanPath: $(Agent.BuildDirectory)/vmr
|
||||
ignoreDirectories: $(Agent.BuildDirectory)/vmr/src
|
||||
|
||||
stages:
|
||||
- stage: VMRSynchronization
|
||||
displayName: VMR Synchronization
|
||||
jobs:
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
|
@ -19,23 +19,48 @@ resources:
|
|||
endpoint: dotnet
|
||||
ref: $(Build.SourceBranch)
|
||||
|
||||
- repository: 1ESPipelineTemplates
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
parameters:
|
||||
- name: vmrBranch
|
||||
displayName: dotnet/dotnet branch to push to
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
variables:
|
||||
variables:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml@self
|
||||
|
||||
- ${{ if ne(parameters.vmrBranch, ' ') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
jobs:
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
|
||||
|
||||
|
||||
extends:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
||||
parameters:
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
sourceRepositoriesToScan:
|
||||
exclude:
|
||||
- repository: vmr
|
||||
|
||||
componentgovernance:
|
||||
sourceScanPath: $(Agent.BuildDirectory)/vmr
|
||||
ignoreDirectories: $(Agent.BuildDirectory)/vmr/src
|
||||
|
||||
stages:
|
||||
- stage: VMRSynchronization
|
||||
displayName: VMR Synchronization
|
||||
jobs:
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"cmake": "3.21.0"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24113.2",
|
||||
"Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.24113.2"
|
||||
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24266.3",
|
||||
"Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.24266.3"
|
||||
}
|
||||
}
|
||||
|
|
1315
src/SourceBuild/content/.config/guardian/.gdnbaselines
Normal file
1315
src/SourceBuild/content/.config/guardian/.gdnbaselines
Normal file
File diff suppressed because it is too large
Load diff
|
@ -30,7 +30,7 @@
|
|||
These URLs can't be composed from their base URL and version as we read them from the
|
||||
prep.sh and pipeline scripts, outside of MSBuild.
|
||||
-->
|
||||
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.102-servicing.24073.1.centos.8-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
|
||||
<PrivateSourceBuiltSdkUrl_CentOS8Stream>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.102-centos.8-x64.tar.gz</PrivateSourceBuiltSdkUrl_CentOS8Stream>
|
||||
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.105-servicing.24224.1.centos.9-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
|
||||
<PrivateSourceBuiltSdkUrl>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.105-centos.9-x64.tar.gz</PrivateSourceBuiltSdkUrl>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -15,10 +15,31 @@ pr:
|
|||
- release/*
|
||||
- internal/release/*
|
||||
|
||||
stages:
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
resources:
|
||||
repositories:
|
||||
- repository: 1ESPipelineTemplates
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
|
||||
extends:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: NetCore1ESPool-Internal
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
baseline:
|
||||
baselineFile: $(Build.SourcesDirectory)\.config\guardian\.gdnbaselines
|
||||
|
||||
customBuildTags:
|
||||
- ES365AIMigrationTooling
|
||||
|
||||
stages:
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: /eng/pipelines/templates/stages/vmr-scan.yml@self
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml@self
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
|
|
18
src/SourceBuild/content/eng/pipelines/pr.yml
Normal file
18
src/SourceBuild/content/eng/pipelines/pr.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
# This is the non-1ES PR pipeline for dotnet/dotnet
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=240
|
||||
|
||||
trigger: none
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- release/*
|
||||
- internal/release/*
|
||||
|
||||
stages:
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
|
@ -0,0 +1,70 @@
|
|||
schedules:
|
||||
- cron: "0 11 * * 1-5"
|
||||
displayName: Run on weekdays at 11am UTC
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
||||
# Relies on dotnet-source-build being in the same repo as this pipeline
|
||||
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/pipeline-triggers?view=azure-devops#branch-considerations
|
||||
resources:
|
||||
pipelines:
|
||||
- pipeline: dotnet-source-build
|
||||
source: dotnet-source-build
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- release/*.0.1xx*
|
||||
- internal/release/*.0.1xx*
|
||||
|
||||
pr: none
|
||||
trigger: none
|
||||
|
||||
pool:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals 1es-ubuntu-2004
|
||||
|
||||
parameters:
|
||||
- name: dotnetDotnetRunId
|
||||
displayName: 'Specific dotnet-dotnet run ID number (e.g `2108850`)'
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
variables:
|
||||
- template: /src/installer/eng/pipelines/templates/variables/vmr-build.yml@self
|
||||
|
||||
jobs:
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.centOSStreamName) }}
|
||||
targetRid: ${{ variables.centOSStreamX64Rid }}
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }}
|
||||
targetRid: ${{ variables.alpineX64Rid }}
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
|
||||
targetRid: ${{ variables.fedoraX64Rid }}
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: ${{ format('{0}_Offline_MsftSdk', variables.ubuntuName) }}
|
||||
targetRid: ${{ variables.ubuntuX64Rid }}
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: ${{ format('{0}Arm64_Offline_MsftSdk', variables.ubuntuName) }}
|
||||
targetRid: ${{ variables.ubuntuArm64Rid }}
|
||||
architecture: arm64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
|
||||
echo "Dotnet-dotnet build: https://dev.azure.com/dnceng/internal/_build/results?buildId=$dotnet_dotnet_build&view=results"
|
||||
|
||||
installer_sha=$(az pipelines build tag list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --build-id $dotnet_dotnet_build --output tsv | sed "s,installer ,,g")
|
||||
installer_sha=$(az pipelines build tag list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --build-id $dotnet_dotnet_build --query "[?contains(@, 'installer')]" --output tsv | sed "s,installer ,,g")
|
||||
installer_build=$(az pipelines runs list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --pipeline-ids '$(INSTALLER_OFFICIAL_CI_PIPELINE_ID)' --query "[?sourceVersion == '$installer_sha'].id" --output tsv)
|
||||
if [[ -z "$installer_build" ]]; then
|
||||
echo "Could not find a build of installer for commit '$installer_sha'"
|
||||
|
@ -100,7 +100,7 @@ jobs:
|
|||
exit 1
|
||||
fi
|
||||
|
||||
eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore
|
||||
eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore
|
||||
|
||||
echo "##vso[task.setvariable variable=Platform]$platform"
|
||||
echo "##vso[task.setvariable variable=MsftSdkTarballPath]$(Pipeline.Workspace)/Artifacts/$msft_sdk_tarball_name"
|
||||
|
@ -110,7 +110,7 @@ jobs:
|
|||
|
||||
- script: >
|
||||
.dotnet/dotnet test
|
||||
$(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj
|
||||
$(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj
|
||||
--filter "Category=SdkContent"
|
||||
--logger:'trx;LogFileName=$(Agent.JobName)_SDKDiffTests.trx'
|
||||
--logger:'console;verbosity=detailed'
|
||||
|
@ -137,7 +137,6 @@ jobs:
|
|||
find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \;
|
||||
find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \;
|
||||
find artifacts/ -type f -name "Build.binlog" -exec cp {} --parents -t ${targetFolder} \;
|
||||
cd "$(Build.SourcesDirectory)/src/SourceBuild/content"
|
||||
find test/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \;
|
||||
find test/ -type f -name "Updated*.diff" -exec cp {} --parents -t ${targetFolder} \;
|
||||
find test/ -type f -name "Updated*.txt" -exec cp {} --parents -t ${targetFolder} \;
|
||||
|
@ -158,7 +157,7 @@ jobs:
|
|||
inputs:
|
||||
testRunner: vSTest
|
||||
testResultsFiles: '*.trx'
|
||||
searchFolder: $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
|
||||
searchFolder: $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
|
||||
mergeTestResults: true
|
||||
publishRunAttachments: true
|
||||
testRunTitle: $(Agent.JobName)
|
|
@ -3,17 +3,22 @@ stages:
|
|||
displayName: Tag & Scan
|
||||
dependsOn: []
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ else }}:
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
jobs:
|
||||
- job: Tag_n_Scan
|
||||
displayName: Tag & Scan
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"tools": {
|
||||
"dotnet": "8.0.102"
|
||||
"dotnet": "8.0.105"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Microsoft.Build.CentralPackageVersions": "2.0.1",
|
||||
|
|
|
@ -61,6 +61,7 @@ public class LicenseScanTests : TestBase
|
|||
"cc-by-sa-3.0", // https://creativecommons.org/licenses/by-sa/3.0/legalcode
|
||||
"cc-by-sa-4.0", // https://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
"cc-pd", // https://creativecommons.org/publicdomain/mark/1.0/
|
||||
"cc-sa-1.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE
|
||||
"epl-1.0", // https://opensource.org/license/epl-1-0/
|
||||
"generic-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/generic-cla.LICENSE
|
||||
"gpl-1.0-plus", // https://opensource.org/license/gpl-1-0/
|
||||
|
@ -76,6 +77,7 @@ public class LicenseScanTests : TestBase
|
|||
"lzma-sdk-9.22", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE
|
||||
"mit", // https://opensource.org/license/mit/
|
||||
"mit-addition", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-addition.LICENSE
|
||||
"mit-testregex", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-testregex.LICENSE
|
||||
"ms-patent-promise", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-patent-promise.LICENSE
|
||||
"ms-lpl", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-lpl.LICENSE
|
||||
"ms-pl", // https://opensource.org/license/ms-pl-html/
|
||||
|
|
|
@ -222,11 +222,11 @@ src/source-build-externals/patches/application-insights/0002-Remove-WebGrease-fr
|
|||
|
||||
# False positive
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.netcore.app.ref/3.*/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown-license-reference
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown-license-reference
|
||||
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library.ref/2.1.0/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
|
||||
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.codeanalysis.collections/4.2.0-1.22102.8/ThirdPartyNotices.rtf|json
|
||||
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown
|
||||
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown-license-reference
|
||||
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.*/IntellisenseFiles/*/1033/System.Security.Permissions.xml|unknown-license-reference
|
||||
|
||||
# Contains references to licenses which are not applicable to the source
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
From 05ad51a9be428012328a1ee199a4edaff20b5efe Mon Sep 17 00:00:00 2001
|
||||
From: Antoine Martin <dev@ayakael.net>
|
||||
Date: Tue, 12 Sep 2023 18:55:46 -0400
|
||||
Subject: [PATCH] crashinfo.cpp/crasinfounix.cpp: use off_t instead of off64_t
|
||||
|
||||
Backport: https://github.com/dotnet/runtime/pull/101272
|
||||
|
||||
---
|
||||
src/coreclr/debug/createdump/crashinfo.cpp | 2 +-
|
||||
src/coreclr/debug/createdump/crashinfounix.cpp | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/coreclr/debug/createdump/crashinfo.cpp b/src/coreclr/debug/createdump/crashinfo.cpp
|
||||
index 996f3a81935d..d1d1b0ea0218 100644
|
||||
--- a/src/coreclr/debug/createdump/crashinfo.cpp
|
||||
+++ b/src/coreclr/debug/createdump/crashinfo.cpp
|
||||
@@ -803,7 +803,7 @@ CrashInfo::PageMappedToPhysicalMemory(uint64_t start)
|
||||
}
|
||||
|
||||
uint64_t pagemapOffset = (start / PAGE_SIZE) * sizeof(uint64_t);
|
||||
- uint64_t seekResult = lseek64(m_fdPagemap, (off64_t) pagemapOffset, SEEK_SET);
|
||||
+ uint64_t seekResult = lseek(m_fdPagemap, (off_t) pagemapOffset, SEEK_SET);
|
||||
if (seekResult != pagemapOffset)
|
||||
{
|
||||
int seekErrno = errno;
|
||||
diff --git a/src/coreclr/debug/createdump/crashinfounix.cpp b/src/coreclr/debug/createdump/crashinfounix.cpp
|
||||
index 24b975e3d655..2f4ea079de3b 100644
|
||||
--- a/src/coreclr/debug/createdump/crashinfounix.cpp
|
||||
+++ b/src/coreclr/debug/createdump/crashinfounix.cpp
|
||||
@@ -516,7 +516,7 @@ CrashInfo::ReadProcessMemory(void* address, void* buffer, size_t size, size_t* r
|
||||
// performance optimization.
|
||||
m_canUseProcVmReadSyscall = false;
|
||||
assert(m_fdMem != -1);
|
||||
- *read = pread64(m_fdMem, buffer, size, (off64_t)address);
|
||||
+ *read = pread(m_fdMem, buffer, size, (off_t)address);
|
||||
}
|
||||
|
||||
if (*read == (size_t)-1)
|
|
@ -0,0 +1,79 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Nikola Milosavljevic <nikolam@microsoft.com>
|
||||
Date: Tue, 23 Apr 2024 01:55:17 +0000
|
||||
Subject: [PATCH] Update MSBuild dependencies
|
||||
|
||||
Backport: https://github.com/dotnet/runtime/issues/101395
|
||||
---
|
||||
eng/Version.Details.xml | 12 ++++++++++++
|
||||
eng/Versions.props | 6 +++---
|
||||
src/tasks/AotCompilerTask/MonoAOTCompiler.csproj | 1 -
|
||||
src/tasks/WasmAppBuilder/WasmAppBuilder.csproj | 3 ---
|
||||
4 files changed, 15 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
|
||||
index fe35dc0997e..b90337395f6 100644
|
||||
--- a/eng/Version.Details.xml
|
||||
+++ b/eng/Version.Details.xml
|
||||
@@ -414,6 +414,18 @@
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
|
||||
</Dependency>
|
||||
+ <Dependency Name="Microsoft.Build.Framework" Version="17.8.3">
|
||||
+ <Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
|
||||
+ </Dependency>
|
||||
+ <Dependency Name="Microsoft.Build.Tasks.Core" Version="17.8.3">
|
||||
+ <Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
|
||||
+ </Dependency>
|
||||
+ <Dependency Name="Microsoft.Build.Utilities.Core" Version="17.8.3">
|
||||
+ <Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
|
||||
+ </Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.3-preview-23613-06">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
|
||||
diff --git a/eng/Versions.props b/eng/Versions.props
|
||||
index f012e409095..bf16c6ee71f 100644
|
||||
--- a/eng/Versions.props
|
||||
+++ b/eng/Versions.props
|
||||
@@ -173,9 +173,9 @@
|
||||
<MicrosoftDiagnosticsToolsRuntimeClientVersion>1.0.4-preview6.19326.1</MicrosoftDiagnosticsToolsRuntimeClientVersion>
|
||||
<DNNEVersion>2.0.5</DNNEVersion>
|
||||
<MicrosoftBuildVersion>17.8.3</MicrosoftBuildVersion>
|
||||
- <MicrosoftBuildTasksCoreVersion>$(MicrosoftBuildVersion)</MicrosoftBuildTasksCoreVersion>
|
||||
- <MicrosoftBuildFrameworkVersion>$(MicrosoftBuildVersion)</MicrosoftBuildFrameworkVersion>
|
||||
- <MicrosoftBuildUtilitiesCoreVersion>$(MicrosoftBuildVersion)</MicrosoftBuildUtilitiesCoreVersion>
|
||||
+ <MicrosoftBuildTasksCoreVersion>17.8.3</MicrosoftBuildTasksCoreVersion>
|
||||
+ <MicrosoftBuildFrameworkVersion>17.8.3</MicrosoftBuildFrameworkVersion>
|
||||
+ <MicrosoftBuildUtilitiesCoreVersion>17.8.3</MicrosoftBuildUtilitiesCoreVersion>
|
||||
<NugetProjectModelVersion>6.2.4</NugetProjectModelVersion>
|
||||
<NugetPackagingVersion>6.2.4</NugetPackagingVersion>
|
||||
<DotnetSosVersion>7.0.412701</DotnetSosVersion>
|
||||
diff --git a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
|
||||
index e76730b5aec..88ae0fb136c 100644
|
||||
--- a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
|
||||
+++ b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
|
||||
@@ -14,7 +14,6 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
|
||||
- <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MonoAOTCompiler.cs" />
|
||||
diff --git a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
|
||||
index 34a51095986..d8c95954dd8 100644
|
||||
--- a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
|
||||
+++ b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
|
||||
@@ -24,9 +24,6 @@
|
||||
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
|
||||
- <!-- FIXME: is this the correct version of SRM to use when building for .NET Framework? -->
|
||||
- <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
|
||||
- <PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
|
@ -32,19 +32,6 @@
|
|||
<Bundled80Templates Include="Microsoft.DotNet.Test.ProjectTemplates.8.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates80PackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates70PackageVersion)" />
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Common.ProjectTemplates.7.0" PackageVersion="$(MicrosoftDotNetCommonItemTemplates70PackageVersion)" />
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Web.ItemTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" />
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Web.ProjectTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" UseVersionForTemplateInstallPath="true" />
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" />
|
||||
<Bundled70Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates70PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled70Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates70PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
|
||||
<!-- NUnit templates are shipped in Test.ProjectTemplates -->
|
||||
<Bundled70Templates Include="Microsoft.DotNet.Test.ProjectTemplates.7.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates70PackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Bundled60Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates60PackageVersion)" />
|
||||
<Bundled60Templates Include="Microsoft.DotNet.Common.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates60PackageVersion)" />
|
||||
|
@ -58,63 +45,12 @@
|
|||
<Bundled60Templates Include="Microsoft.DotNet.Test.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates60PackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates50PackageVersion)" />
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Common.ProjectTemplates.5.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates50PackageVersion)" />
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Test.ProjectTemplates.5.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates50PackageVersion)" />
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" />
|
||||
<Bundled50Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled50Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Web.ProjectTemplates.5.0" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" UseVersionForTemplateInstallPath="true" />
|
||||
<Bundled50Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.5.0" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" />
|
||||
<Bundled50Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates50PackageVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates31PackageVersion)" />
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Common.ProjectTemplates.3.1" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates31PackageVersion)" />
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Test.ProjectTemplates.3.1" PackageVersion="$(MicrosoftDotNetTestProjectTemplates31PackageVersion)" />
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" />
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Web.ProjectTemplates.3.1" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" UseVersionForTemplateInstallPath="true" />
|
||||
<Bundled31Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" />
|
||||
<Bundled31Templates Include="Microsoft.AspNetCore.Components.WebAssembly.Templates" PackageVersion="$(MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion)" />
|
||||
<Bundled31Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates31PackageVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
|
||||
<Bundled31Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates31PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled31Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates31PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates30PackageVersion)" />
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Common.ProjectTemplates.3.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates30PackageVersion)" />
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Test.ProjectTemplates.3.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates30PackageVersion)" />
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" />
|
||||
<Bundled30Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates30PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled30Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates30PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Web.ProjectTemplates.3.0" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" UseVersionForTemplateInstallPath="true" />
|
||||
<Bundled30Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" />
|
||||
<Bundled30Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates30PackageVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates21PackageVersion)" />
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Common.ProjectTemplates.2.1" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates21PackageVersion)" />
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" PackageVersion="$(MicrosoftDotNetTestProjectTemplates21PackageVersion)" />
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" />
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" UseVersionForTemplateInstallPath="true" />
|
||||
<Bundled21Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.2.1" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" />
|
||||
<Bundled21Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates21PackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CurrentVersionBundledTemplates Include="@(Bundled80Templates)" TemplateFrameworkVersion="8.0"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled70Templates)" TemplateFrameworkVersion="7.0"/>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled60Templates)" TemplateFrameworkVersion="6.0"/>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled50Templates)" TemplateFrameworkVersion="5.0"/>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled31Templates)" TemplateFrameworkVersion="3.1"/>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled30Templates)" TemplateFrameworkVersion="3.0"/>
|
||||
<PreviousVersionBundledTemplates Include="@(Bundled21Templates)" TemplateFrameworkVersion="2.1"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
Loading…
Reference in a new issue