Merge branch 'feature/installer-merge-update-main' into feature/installer-merge-update
# Conflicts: # .vsts-ci.yml # eng/Publishing.props # eng/Versions.props # eng/build.yml # global.json # src/redist/targets/BundledTemplates.targets # src/redist/targets/GenerateBundledVersions.targets # src/redist/targets/Versions.targets
This commit is contained in:
commit
3acc889653
191 changed files with 10271 additions and 4334 deletions
21
.config/1espt/PipelineAutobaseliningConfig.yml
Normal file
21
.config/1espt/PipelineAutobaseliningConfig.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details.
|
||||
|
||||
pipelines:
|
||||
286:
|
||||
retail:
|
||||
binary:
|
||||
credscan:
|
||||
lastModifiedDate: 2024-03-15
|
||||
binskim:
|
||||
lastModifiedDate: 2024-03-15
|
||||
spotbugs:
|
||||
lastModifiedDate: 2024-03-15
|
||||
source:
|
||||
credscan:
|
||||
lastModifiedDate: 2024-03-15
|
||||
eslint:
|
||||
lastModifiedDate: 2024-03-15
|
||||
psscriptanalyzer:
|
||||
lastModifiedDate: 2024-03-15
|
||||
armory:
|
||||
lastModifiedDate: 2024-03-15
|
|
@ -3,7 +3,7 @@
|
|||
"isRoot": true,
|
||||
"tools": {
|
||||
"microsoft.dotnet.darc": {
|
||||
"version": "1.1.0-beta.24112.3",
|
||||
"version": "1.1.0-beta.24168.3",
|
||||
"commands": [
|
||||
"darc"
|
||||
]
|
||||
|
|
225
.config/guardian/.gdnbaselines
Normal file
225
.config/guardian/.gdnbaselines
Normal file
|
@ -0,0 +1,225 @@
|
|||
{
|
||||
"properties": {
|
||||
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines"
|
||||
},
|
||||
"version": "1.0.0",
|
||||
"baselines": {
|
||||
"default": {
|
||||
"name": "default",
|
||||
"createdDate": "2024-03-15 21:07:20Z",
|
||||
"lastUpdatedDate": "2024-03-15 21:07:20Z"
|
||||
}
|
||||
},
|
||||
"results": {
|
||||
"9fcdc81730d500a234ad1fcd1a18108502b8c50c48567b91176c8e26f6bc5d34": {
|
||||
"signature": "9fcdc81730d500a234ad1fcd1a18108502b8c50c48567b91176c8e26f6bc5d34",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:07:20Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"8814a931c03f7ee625e291e19f2f5671357142600639b0143a3c46631b864e93": {
|
||||
"signature": "8814a931c03f7ee625e291e19f2f5671357142600639b0143a3c46631b864e93",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/dlabnugetcert.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"29ef09fbcdcda70063644424ad6a64c7aaae97e31b89c31c89b631eab56252e9": {
|
||||
"signature": "29ef09fbcdcda70063644424ad6a64c7aaae97e31b89c31c89b631eab56252e9",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/dynamicsha1.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"5801a584cc6df8c732f18f7abc1b1ccf64ab2a6ddbb05f9bbdde8beb5a67fe3a": {
|
||||
"signature": "5801a584cc6df8c732f18f7abc1b1ccf64ab2a6ddbb05f9bbdde8beb5a67fe3a",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/dynamicsha2.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"cab715138e57370e027c311bdcfcd828aef2e813338eb9b6db44c222132dcc43": {
|
||||
"signature": "cab715138e57370e027c311bdcfcd828aef2e813338eb9b6db44c222132dcc43",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/testdlab.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"69fdade2005d4c82978110367d00ff0b563d127022c89cc13d9130ff08811249": {
|
||||
"signature": "69fdade2005d4c82978110367d00ff0b563d127022c89cc13d9130ff08811249",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/testdlabsha2.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"efe01799a8cef937301b58208e2b347b9f5c534d89815d9843d75be7b2e2fb43": {
|
||||
"signature": "efe01799a8cef937301b58208e2b347b9f5c534d89815d9843d75be7b2e2fb43",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/vsmsappx.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"f5eed94d081284181a2cd78b47b336ece0fcf2c0eafd462ffe6a88ff913d8184": {
|
||||
"signature": "f5eed94d081284181a2cd78b47b336ece0fcf2c0eafd462ffe6a88ff913d8184",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/WinBlue.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"3aa029a27ef41acb56bd41ac97412078144ad5e722c21c325333f3af37b51d8a": {
|
||||
"signature": "3aa029a27ef41acb56bd41ac97412078144ad5e722c21c325333f3af37b51d8a",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/WP223.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"624055be3115da111704bd2823e64fb78862b3650767e571aef8a9b7a127c6d8": {
|
||||
"signature": "624055be3115da111704bd2823e64fb78862b3650767e571aef8a9b7a127c6d8",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/MicroBuild.Plugins.Signing.1.1.902/build/tools/MobileTools/7Sign/tcb.pfx",
|
||||
"line": 1,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0020",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"1d4ee8b341d5f1ef56c8e517759511e55556866f0a6fbabf23440798da1f05d5": {
|
||||
"signature": "1d4ee8b341d5f1ef56c8e517759511e55556866f0a6fbabf23440798da1f05d5",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:10:23Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"4fdcce44747d67552fa68a352060f50d85431c0c7ea4215b395bdb360db739a7": {
|
||||
"signature": "4fdcce44747d67552fa68a352060f50d85431c0c7ea4215b395bdb360db739a7",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"62685d821fc38b8db7ddb0a07decba2a1be29c26ce13b5cb75fcc123ad048783": {
|
||||
"signature": "62685d821fc38b8db7ddb0a07decba2a1be29c26ce13b5cb75fcc123ad048783",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:10:55Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"0ecc3cb201b58b5026eef9239d3a888de6188f974948d8c2d76ea5f22dd12fd2": {
|
||||
"signature": "0ecc3cb201b58b5026eef9239d3a888de6188f974948d8c2d76ea5f22dd12fd2",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:10:23Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
},
|
||||
"e4e0934b769d92960066e0db46b39bcb24f69fb478779b630d2d8581f384a95c": {
|
||||
"signature": "e4e0934b769d92960066e0db46b39bcb24f69fb478779b630d2d8581f384a95c",
|
||||
"alternativeSignatures": [],
|
||||
"target": "MicroBuild/Plugins/nuget.config",
|
||||
"line": 9,
|
||||
"memberOf": [
|
||||
"default"
|
||||
],
|
||||
"tool": "credscan",
|
||||
"ruleId": "CSCAN-GENERAL0060",
|
||||
"createdDate": "2024-03-15 21:10:36Z",
|
||||
"expirationDate": "2024-09-01 21:43:51Z",
|
||||
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-15 21:43:51Z"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -27,4 +27,4 @@ vmr_branch=$(git -C "$installer_dir" log --pretty=format:'%D' HEAD^ \
|
|||
|
||||
"$workspace_dir/synchronize-vmr.sh" --branch "$vmr_branch" --debug
|
||||
|
||||
(cd "$vmr_dir" && ./prep.sh)
|
||||
(cd "$vmr_dir" && ./prep-source-build.sh)
|
||||
|
|
673
.vsts-ci.yml
673
.vsts-ci.yml
|
@ -1,3 +1,5 @@
|
|||
# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=286
|
||||
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
|
@ -23,339 +25,366 @@ 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-official/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)
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
resources:
|
||||
repositories:
|
||||
- repository: 1esPipelines
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
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') }}:
|
||||
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
|
||||
debian11Amd64:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
|
||||
fedora39:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
|
||||
ubuntu2204:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
ubuntu2204CrossArmAlpine:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-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_39_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39'
|
||||
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_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
|
||||
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.19-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-22.04-cross-arm-alpine'
|
||||
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.19-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
|
||||
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_39_Debug_x64
|
||||
container: fedora39
|
||||
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: debian11Amd64
|
||||
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: ubuntu2204CrossArmAlpine
|
||||
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
|
||||
|
||||
# Windows PGO Instrumentation
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
# Linux PGO Instrumentation
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
linuxPortable: true
|
||||
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
|
||||
|
|
363
.vsts-pr.yml
Normal file
363
.vsts-pr.yml
Normal file
|
@ -0,0 +1,363 @@
|
|||
# Pipeline: https://dev.azure.com/dnceng-public/public/_build?definitionId=20
|
||||
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- master
|
||||
- release/*
|
||||
- internal/release/*
|
||||
|
||||
variables:
|
||||
- name: _PublishUsingPipelines
|
||||
value: false
|
||||
- ${{ if or(startswith(variables['Build.SourceBranch'], 'refs/heads/release/'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/'), eq(variables['Build.Reason'], 'Manual')) }}:
|
||||
- name: PostBuildSign
|
||||
value: false
|
||||
- ${{ else }}:
|
||||
- name: PostBuildSign
|
||||
value: true
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- name: Codeql.Enabled
|
||||
value: true
|
||||
- group: DotNet-DotNetCli-Storage
|
||||
- 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
|
||||
|
||||
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') }}:
|
||||
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-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Debug_x64
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: true
|
||||
|
||||
## Linux
|
||||
|
||||
- template: eng/build-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Fedora_39_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
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-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Linux
|
||||
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-arm'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-arm-alpine'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-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-pr.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-pr.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-pr.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-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
# MacOS
|
||||
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_arm64
|
||||
runtimeIdentifier: 'osx-arm64'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Windows PGO Instrumentation builds
|
||||
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pgoInstrument: true
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
## Linux PGO Instrumentation builds
|
||||
|
||||
- template: eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pgoInstrument: true
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
- template: eng/build-pr.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
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022.amd64
|
|
@ -4,5 +4,5 @@
|
|||
/.devcontainer/ @dotnet/source-build-internal
|
||||
/eng/SourceBuild* @dotnet/source-build-internal
|
||||
/src/snaps/ @rbhanda
|
||||
/src/SourceBuild/ @dotnet/source-build-internal
|
||||
/src/SourceBuild/ @dotnet/source-build-internal @dotnet/product-construction
|
||||
/src/VirtualMonoRepo/ @dotnet/product-construction
|
||||
|
|
|
@ -14,7 +14,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" />
|
||||
|
|
159
README.md
159
README.md
|
@ -114,7 +114,7 @@ Further instructions on how to build inside of the Codespace will be available u
|
|||
tar zxf artifacts/x64/Release/dotnet-sdk-7.0.100-your-RID.tar.gz -C $HOME/dotnet
|
||||
ln -s $HOME/dotnet/dotnet /usr/bin/dotnet
|
||||
```
|
||||
|
||||
|
||||
To test your source-built SDK, run the following:
|
||||
|
||||
```bash
|
||||
|
@ -170,22 +170,21 @@ Do not directly edit the table below. Use https://github.com/dotnet/installer/tr
|
|||
|
||||
### Table
|
||||
|
||||
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
|
||||
--------------------------------------------------------------------------------------
|
||||
| Platform | main<br>(9.0.x Runtime) | 9.0.1xx-preview1<br>(9.0-preview1 Runtime) | 8.0.3xx<br>(8.0 Runtime) | Release/7.0.4xx<br>(7.0.x Runtime) |
|
||||
| Platform | main<br>(9.0.x Runtime) | 9.0.1xx-preview3<br>(9.0-preview3 Runtime) | 8.0.3xx<br>(8.0 Runtime) | Release/7.0.4xx<br>(7.0.x Runtime) |
|
||||
| :--------- | :----------: | :----------: | :----------: | :----------: |
|
||||
| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]<br>[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]<br>[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-9.0.1XX-preview1]][win-x64-version-9.0.1XX-preview1]<br>[Installer][win-x64-installer-9.0.1XX-preview1] - [Checksum][win-x64-installer-checksum-9.0.1XX-preview1]<br>[zip][win-x64-zip-9.0.1XX-preview1] - [Checksum][win-x64-zip-checksum-9.0.1XX-preview1] | [![][win-x64-badge-8.0.3XX]][win-x64-version-8.0.3XX]<br>[Installer][win-x64-installer-8.0.3XX] - [Checksum][win-x64-installer-checksum-8.0.3XX]<br>[zip][win-x64-zip-8.0.3XX] - [Checksum][win-x64-zip-checksum-8.0.3XX] | [![][win-x64-badge-7.0.4XX]][win-x64-version-7.0.4XX]<br>[Installer][win-x64-installer-7.0.4XX] - [Checksum][win-x64-installer-checksum-7.0.4XX]<br>[zip][win-x64-zip-7.0.4XX] - [Checksum][win-x64-zip-checksum-7.0.4XX] |
|
||||
| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]<br>[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]<br>[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-9.0.1XX-preview1]][win-x86-version-9.0.1XX-preview1]<br>[Installer][win-x86-installer-9.0.1XX-preview1] - [Checksum][win-x86-installer-checksum-9.0.1XX-preview1]<br>[zip][win-x86-zip-9.0.1XX-preview1] - [Checksum][win-x86-zip-checksum-9.0.1XX-preview1] | [![][win-x86-badge-8.0.3XX]][win-x86-version-8.0.3XX]<br>[Installer][win-x86-installer-8.0.3XX] - [Checksum][win-x86-installer-checksum-8.0.3XX]<br>[zip][win-x86-zip-8.0.3XX] - [Checksum][win-x86-zip-checksum-8.0.3XX] | [![][win-x86-badge-7.0.4XX]][win-x86-version-7.0.4XX]<br>[Installer][win-x86-installer-7.0.4XX] - [Checksum][win-x86-installer-checksum-7.0.4XX]<br>[zip][win-x86-zip-7.0.4XX] - [Checksum][win-x86-zip-checksum-7.0.4XX] |
|
||||
| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]<br>[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]<br>[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-9.0.1XX-preview3]][win-x64-version-9.0.1XX-preview3]<br>[Installer][win-x64-installer-9.0.1XX-preview3] - [Checksum][win-x64-installer-checksum-9.0.1XX-preview3]<br>[zip][win-x64-zip-9.0.1XX-preview3] - [Checksum][win-x64-zip-checksum-9.0.1XX-preview3] | [![][win-x64-badge-8.0.3XX]][win-x64-version-8.0.3XX]<br>[Installer][win-x64-installer-8.0.3XX] - [Checksum][win-x64-installer-checksum-8.0.3XX]<br>[zip][win-x64-zip-8.0.3XX] - [Checksum][win-x64-zip-checksum-8.0.3XX] | [![][win-x64-badge-7.0.4XX]][win-x64-version-7.0.4XX]<br>[Installer][win-x64-installer-7.0.4XX] - [Checksum][win-x64-installer-checksum-7.0.4XX]<br>[zip][win-x64-zip-7.0.4XX] - [Checksum][win-x64-zip-checksum-7.0.4XX] |
|
||||
| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]<br>[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]<br>[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-9.0.1XX-preview3]][win-x86-version-9.0.1XX-preview3]<br>[Installer][win-x86-installer-9.0.1XX-preview3] - [Checksum][win-x86-installer-checksum-9.0.1XX-preview3]<br>[zip][win-x86-zip-9.0.1XX-preview3] - [Checksum][win-x86-zip-checksum-9.0.1XX-preview3] | [![][win-x86-badge-8.0.3XX]][win-x86-version-8.0.3XX]<br>[Installer][win-x86-installer-8.0.3XX] - [Checksum][win-x86-installer-checksum-8.0.3XX]<br>[zip][win-x86-zip-8.0.3XX] - [Checksum][win-x86-zip-checksum-8.0.3XX] | [![][win-x86-badge-7.0.4XX]][win-x86-version-7.0.4XX]<br>[Installer][win-x86-installer-7.0.4XX] - [Checksum][win-x86-installer-checksum-7.0.4XX]<br>[zip][win-x86-zip-7.0.4XX] - [Checksum][win-x86-zip-checksum-7.0.4XX] |
|
||||
| **Windows arm** | **N/A** | **N/A** | **N/A** | **N/A** |
|
||||
| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]<br>[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]<br>[zip][win-arm64-zip-main] | [![][win-arm64-badge-9.0.1XX-preview1]][win-arm64-version-9.0.1XX-preview1]<br>[Installer][win-arm64-installer-9.0.1XX-preview1] - [Checksum][win-arm64-installer-checksum-9.0.1XX-preview1]<br>[zip][win-arm64-zip-9.0.1XX-preview1] | [![][win-arm64-badge-8.0.3XX]][win-arm64-version-8.0.3XX]<br>[Installer][win-arm64-installer-8.0.3XX] - [Checksum][win-arm64-installer-checksum-8.0.3XX]<br>[zip][win-arm64-zip-8.0.3XX] | [![][win-arm64-badge-7.0.4XX]][win-arm64-version-7.0.4XX]<br>[Installer][win-arm64-installer-7.0.4XX] - [Checksum][win-arm64-installer-checksum-7.0.4XX]<br>[zip][win-arm64-zip-7.0.4XX] |
|
||||
| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]<br>[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]<br>[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-9.0.1XX-preview1]][osx-x64-version-9.0.1XX-preview1]<br>[Installer][osx-x64-installer-9.0.1XX-preview1] - [Checksum][osx-x64-installer-checksum-9.0.1XX-preview1]<br>[tar.gz][osx-x64-targz-9.0.1XX-preview1] - [Checksum][osx-x64-targz-checksum-9.0.1XX-preview1] | [![][osx-x64-badge-8.0.3XX]][osx-x64-version-8.0.3XX]<br>[Installer][osx-x64-installer-8.0.3XX] - [Checksum][osx-x64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-x64-targz-8.0.3XX] - [Checksum][osx-x64-targz-checksum-8.0.3XX] | [![][osx-x64-badge-7.0.4XX]][osx-x64-version-7.0.4XX]<br>[Installer][osx-x64-installer-7.0.4XX] - [Checksum][osx-x64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-x64-targz-7.0.4XX] - [Checksum][osx-x64-targz-checksum-7.0.4XX] |
|
||||
| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]<br>[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]<br>[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-9.0.1XX-preview1]][osx-arm64-version-9.0.1XX-preview1]<br>[Installer][osx-arm64-installer-9.0.1XX-preview1] - [Checksum][osx-arm64-installer-checksum-9.0.1XX-preview1]<br>[tar.gz][osx-arm64-targz-9.0.1XX-preview1] - [Checksum][osx-arm64-targz-checksum-9.0.1XX-preview1] | [![][osx-arm64-badge-8.0.3XX]][osx-arm64-version-8.0.3XX]<br>[Installer][osx-arm64-installer-8.0.3XX] - [Checksum][osx-arm64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-arm64-targz-8.0.3XX] - [Checksum][osx-arm64-targz-checksum-8.0.3XX] | [![][osx-arm64-badge-7.0.4XX]][osx-arm64-version-7.0.4XX]<br>[Installer][osx-arm64-installer-7.0.4XX] - [Checksum][osx-arm64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-arm64-targz-7.0.4XX] - [Checksum][osx-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux x64** | [![][linux-badge-main]][linux-version-main]<br>[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]<br>[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-9.0.1XX-preview1]][linux-version-9.0.1XX-preview1]<br>[DEB Installer][linux-DEB-installer-9.0.1XX-preview1] - [Checksum][linux-DEB-installer-checksum-9.0.1XX-preview1]<br>[RPM Installer][linux-RPM-installer-9.0.1XX-preview1] - [Checksum][linux-RPM-installer-checksum-9.0.1XX-preview1]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-9.0.1XX-preview1] - [Checksum][linux-targz-checksum-9.0.1XX-preview1] | [![][linux-badge-8.0.3XX]][linux-version-8.0.3XX]<br>[DEB Installer][linux-DEB-installer-8.0.3XX] - [Checksum][linux-DEB-installer-checksum-8.0.3XX]<br>[RPM Installer][linux-RPM-installer-8.0.3XX] - [Checksum][linux-RPM-installer-checksum-8.0.3XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-8.0.3XX] - [Checksum][linux-targz-checksum-8.0.3XX] | [![][linux-badge-7.0.4XX]][linux-version-7.0.4XX]<br>[DEB Installer][linux-DEB-installer-7.0.4XX] - [Checksum][linux-DEB-installer-checksum-7.0.4XX]<br>[RPM Installer][linux-RPM-installer-7.0.4XX] - [Checksum][linux-RPM-installer-checksum-7.0.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-7.0.4XX] - [Checksum][linux-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]<br>[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-9.0.1XX-preview1]][linux-arm-version-9.0.1XX-preview1]<br>[tar.gz][linux-arm-targz-9.0.1XX-preview1] - [Checksum][linux-arm-targz-checksum-9.0.1XX-preview1] | [![][linux-arm-badge-8.0.3XX]][linux-arm-version-8.0.3XX]<br>[tar.gz][linux-arm-targz-8.0.3XX] - [Checksum][linux-arm-targz-checksum-8.0.3XX] | [![][linux-arm-badge-7.0.4XX]][linux-arm-version-7.0.4XX]<br>[tar.gz][linux-arm-targz-7.0.4XX] - [Checksum][linux-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]<br>[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-9.0.1XX-preview1]][linux-arm64-version-9.0.1XX-preview1]<br>[tar.gz][linux-arm64-targz-9.0.1XX-preview1] - [Checksum][linux-arm64-targz-checksum-9.0.1XX-preview1] | [![][linux-arm64-badge-8.0.3XX]][linux-arm64-version-8.0.3XX]<br>[tar.gz][linux-arm64-targz-8.0.3XX] - [Checksum][linux-arm64-targz-checksum-8.0.3XX] | [![][linux-arm64-badge-7.0.4XX]][linux-arm64-version-7.0.4XX]<br>[tar.gz][linux-arm64-targz-7.0.4XX] - [Checksum][linux-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]<br>[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-9.0.1XX-preview1]][linux-musl-x64-version-9.0.1XX-preview1]<br>[tar.gz][linux-musl-x64-targz-9.0.1XX-preview1] - [Checksum][linux-musl-x64-targz-checksum-9.0.1XX-preview1] | [![][linux-musl-x64-badge-8.0.3XX]][linux-musl-x64-version-8.0.3XX]<br>[tar.gz][linux-musl-x64-targz-8.0.3XX] - [Checksum][linux-musl-x64-targz-checksum-8.0.3XX] | [![][linux-musl-x64-badge-7.0.4XX]][linux-musl-x64-version-7.0.4XX]<br>[tar.gz][linux-musl-x64-targz-7.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]<br>[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-9.0.1XX-preview1]][linux-musl-arm-version-9.0.1XX-preview1]<br>[tar.gz][linux-musl-arm-targz-9.0.1XX-preview1] - [Checksum][linux-musl-arm-targz-checksum-9.0.1XX-preview1] | [![][linux-musl-arm-badge-8.0.3XX]][linux-musl-arm-version-8.0.3XX]<br>[tar.gz][linux-musl-arm-targz-8.0.3XX] - [Checksum][linux-musl-arm-targz-checksum-8.0.3XX] | [![][linux-musl-arm-badge-7.0.4XX]][linux-musl-arm-version-7.0.4XX]<br>[tar.gz][linux-musl-arm-targz-7.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]<br>[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-9.0.1XX-preview1]][linux-musl-arm64-version-9.0.1XX-preview1]<br>[tar.gz][linux-musl-arm64-targz-9.0.1XX-preview1] - [Checksum][linux-musl-arm64-targz-checksum-9.0.1XX-preview1] | [![][linux-musl-arm64-badge-8.0.3XX]][linux-musl-arm64-version-8.0.3XX]<br>[tar.gz][linux-musl-arm64-targz-8.0.3XX] - [Checksum][linux-musl-arm64-targz-checksum-8.0.3XX] | [![][linux-musl-arm64-badge-7.0.4XX]][linux-musl-arm64-version-7.0.4XX]<br>[tar.gz][linux-musl-arm64-targz-7.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]<br>[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]<br>[zip][win-arm64-zip-main] | [![][win-arm64-badge-9.0.1XX-preview3]][win-arm64-version-9.0.1XX-preview3]<br>[Installer][win-arm64-installer-9.0.1XX-preview3] - [Checksum][win-arm64-installer-checksum-9.0.1XX-preview3]<br>[zip][win-arm64-zip-9.0.1XX-preview3] | [![][win-arm64-badge-8.0.3XX]][win-arm64-version-8.0.3XX]<br>[Installer][win-arm64-installer-8.0.3XX] - [Checksum][win-arm64-installer-checksum-8.0.3XX]<br>[zip][win-arm64-zip-8.0.3XX] | [![][win-arm64-badge-7.0.4XX]][win-arm64-version-7.0.4XX]<br>[Installer][win-arm64-installer-7.0.4XX] - [Checksum][win-arm64-installer-checksum-7.0.4XX]<br>[zip][win-arm64-zip-7.0.4XX] |
|
||||
| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]<br>[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]<br>[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-9.0.1XX-preview3]][osx-x64-version-9.0.1XX-preview3]<br>[Installer][osx-x64-installer-9.0.1XX-preview3] - [Checksum][osx-x64-installer-checksum-9.0.1XX-preview3]<br>[tar.gz][osx-x64-targz-9.0.1XX-preview3] - [Checksum][osx-x64-targz-checksum-9.0.1XX-preview3] | [![][osx-x64-badge-8.0.3XX]][osx-x64-version-8.0.3XX]<br>[Installer][osx-x64-installer-8.0.3XX] - [Checksum][osx-x64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-x64-targz-8.0.3XX] - [Checksum][osx-x64-targz-checksum-8.0.3XX] | [![][osx-x64-badge-7.0.4XX]][osx-x64-version-7.0.4XX]<br>[Installer][osx-x64-installer-7.0.4XX] - [Checksum][osx-x64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-x64-targz-7.0.4XX] - [Checksum][osx-x64-targz-checksum-7.0.4XX] |
|
||||
| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]<br>[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]<br>[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-9.0.1XX-preview3]][osx-arm64-version-9.0.1XX-preview3]<br>[Installer][osx-arm64-installer-9.0.1XX-preview3] - [Checksum][osx-arm64-installer-checksum-9.0.1XX-preview3]<br>[tar.gz][osx-arm64-targz-9.0.1XX-preview3] - [Checksum][osx-arm64-targz-checksum-9.0.1XX-preview3] | [![][osx-arm64-badge-8.0.3XX]][osx-arm64-version-8.0.3XX]<br>[Installer][osx-arm64-installer-8.0.3XX] - [Checksum][osx-arm64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-arm64-targz-8.0.3XX] - [Checksum][osx-arm64-targz-checksum-8.0.3XX] | [![][osx-arm64-badge-7.0.4XX]][osx-arm64-version-7.0.4XX]<br>[Installer][osx-arm64-installer-7.0.4XX] - [Checksum][osx-arm64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-arm64-targz-7.0.4XX] - [Checksum][osx-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux x64** | [![][linux-badge-main]][linux-version-main]<br>[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]<br>[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-9.0.1XX-preview3]][linux-version-9.0.1XX-preview3]<br>[DEB Installer][linux-DEB-installer-9.0.1XX-preview3] - [Checksum][linux-DEB-installer-checksum-9.0.1XX-preview3]<br>[RPM Installer][linux-RPM-installer-9.0.1XX-preview3] - [Checksum][linux-RPM-installer-checksum-9.0.1XX-preview3]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-9.0.1XX-preview3] - [Checksum][linux-targz-checksum-9.0.1XX-preview3] | [![][linux-badge-8.0.3XX]][linux-version-8.0.3XX]<br>[DEB Installer][linux-DEB-installer-8.0.3XX] - [Checksum][linux-DEB-installer-checksum-8.0.3XX]<br>[RPM Installer][linux-RPM-installer-8.0.3XX] - [Checksum][linux-RPM-installer-checksum-8.0.3XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-8.0.3XX] - [Checksum][linux-targz-checksum-8.0.3XX] | [![][linux-badge-7.0.4XX]][linux-version-7.0.4XX]<br>[DEB Installer][linux-DEB-installer-7.0.4XX] - [Checksum][linux-DEB-installer-checksum-7.0.4XX]<br>[RPM Installer][linux-RPM-installer-7.0.4XX] - [Checksum][linux-RPM-installer-checksum-7.0.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-7.0.4XX] - [Checksum][linux-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]<br>[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-9.0.1XX-preview3]][linux-arm-version-9.0.1XX-preview3]<br>[tar.gz][linux-arm-targz-9.0.1XX-preview3] - [Checksum][linux-arm-targz-checksum-9.0.1XX-preview3] | [![][linux-arm-badge-8.0.3XX]][linux-arm-version-8.0.3XX]<br>[tar.gz][linux-arm-targz-8.0.3XX] - [Checksum][linux-arm-targz-checksum-8.0.3XX] | [![][linux-arm-badge-7.0.4XX]][linux-arm-version-7.0.4XX]<br>[tar.gz][linux-arm-targz-7.0.4XX] - [Checksum][linux-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]<br>[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-9.0.1XX-preview3]][linux-arm64-version-9.0.1XX-preview3]<br>[tar.gz][linux-arm64-targz-9.0.1XX-preview3] - [Checksum][linux-arm64-targz-checksum-9.0.1XX-preview3] | [![][linux-arm64-badge-8.0.3XX]][linux-arm64-version-8.0.3XX]<br>[tar.gz][linux-arm64-targz-8.0.3XX] - [Checksum][linux-arm64-targz-checksum-8.0.3XX] | [![][linux-arm64-badge-7.0.4XX]][linux-arm64-version-7.0.4XX]<br>[tar.gz][linux-arm64-targz-7.0.4XX] - [Checksum][linux-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]<br>[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-9.0.1XX-preview3]][linux-musl-x64-version-9.0.1XX-preview3]<br>[tar.gz][linux-musl-x64-targz-9.0.1XX-preview3] - [Checksum][linux-musl-x64-targz-checksum-9.0.1XX-preview3] | [![][linux-musl-x64-badge-8.0.3XX]][linux-musl-x64-version-8.0.3XX]<br>[tar.gz][linux-musl-x64-targz-8.0.3XX] - [Checksum][linux-musl-x64-targz-checksum-8.0.3XX] | [![][linux-musl-x64-badge-7.0.4XX]][linux-musl-x64-version-7.0.4XX]<br>[tar.gz][linux-musl-x64-targz-7.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]<br>[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-9.0.1XX-preview3]][linux-musl-arm-version-9.0.1XX-preview3]<br>[tar.gz][linux-musl-arm-targz-9.0.1XX-preview3] - [Checksum][linux-musl-arm-targz-checksum-9.0.1XX-preview3] | [![][linux-musl-arm-badge-8.0.3XX]][linux-musl-arm-version-8.0.3XX]<br>[tar.gz][linux-musl-arm-targz-8.0.3XX] - [Checksum][linux-musl-arm-targz-checksum-8.0.3XX] | [![][linux-musl-arm-badge-7.0.4XX]][linux-musl-arm-version-7.0.4XX]<br>[tar.gz][linux-musl-arm-targz-7.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]<br>[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-9.0.1XX-preview3]][linux-musl-arm64-version-9.0.1XX-preview3]<br>[tar.gz][linux-musl-arm64-targz-9.0.1XX-preview3] - [Checksum][linux-musl-arm64-targz-checksum-9.0.1XX-preview3] | [![][linux-musl-arm64-badge-8.0.3XX]][linux-musl-arm64-version-8.0.3XX]<br>[tar.gz][linux-musl-arm64-targz-8.0.3XX] - [Checksum][linux-musl-arm64-targz-checksum-8.0.3XX] | [![][linux-musl-arm64-badge-7.0.4XX]][linux-musl-arm64-version-7.0.4XX]<br>[tar.gz][linux-musl-arm64-targz-7.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-7.0.4XX] |
|
||||
| **RHEL 6** | **N/A** | **N/A** | **N/A** | **N/A** |
|
||||
|
||||
Reference notes:
|
||||
|
@ -202,12 +201,12 @@ Reference notes:
|
|||
[win-x64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x64.zip.sha
|
||||
[win-x64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-x64.txt
|
||||
|
@ -230,12 +229,12 @@ Reference notes:
|
|||
[win-x86-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-x86.zip.sha
|
||||
[win-x86-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-x86.txt
|
||||
|
@ -258,12 +257,12 @@ Reference notes:
|
|||
[osx-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
[osx-x64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-osx-x64.txt
|
||||
|
@ -286,12 +285,12 @@ Reference notes:
|
|||
[osx-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
[osx-arm64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-osx-arm64.txt
|
||||
|
@ -316,14 +315,14 @@ Reference notes:
|
|||
[linux-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
[linux-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-x64.txt
|
||||
|
@ -348,10 +347,10 @@ Reference notes:
|
|||
[linux-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
[linux-arm-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-arm.txt
|
||||
|
@ -368,10 +367,10 @@ Reference notes:
|
|||
[linux-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
[linux-arm64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-arm64.txt
|
||||
|
@ -388,10 +387,10 @@ Reference notes:
|
|||
[rhel-6-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
[rhel-6-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-rhel.6-x64.txt
|
||||
|
@ -408,10 +407,10 @@ Reference notes:
|
|||
[linux-musl-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
[linux-musl-x64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-x64.txt
|
||||
|
@ -428,10 +427,10 @@ Reference notes:
|
|||
[linux-musl-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
[linux-musl-arm-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-arm.txt
|
||||
|
@ -448,10 +447,10 @@ Reference notes:
|
|||
[linux-musl-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
[linux-musl-arm64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-arm64.txt
|
||||
|
@ -468,10 +467,10 @@ Reference notes:
|
|||
[win-arm-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm.zip.sha
|
||||
[win-arm-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-arm.txt
|
||||
|
@ -490,12 +489,12 @@ Reference notes:
|
|||
[win-arm64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-9.0.1XX-preview1]: https://aka.ms/dotnet/9.0.1xx-preview1/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
[win-arm64-badge-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-9.0.1XX-preview3]: https://aka.ms/dotnet/9.0.1xx-preview3/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-arm64.txt
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the MIT license. See License.txt in the project root for full license information. -->
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<PublishingVersion>3</PublishingVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Product>Sdk</Product>
|
||||
<BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath>
|
||||
|
@ -133,7 +127,7 @@
|
|||
<IsStableBuild Condition="'$(DotNetFinalVersionKind)' == 'release'">true</IsStableBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<PushToAzureDevOpsArtifacts
|
||||
<PushToBuildStorage
|
||||
AzureDevOpsCollectionUri="$(SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)"
|
||||
AzureDevOpsProject="$(SYSTEM_TEAMPROJECT)"
|
||||
AzureDevOpsBuildId="$(BUILD_BUILDID)"
|
||||
|
@ -151,7 +145,12 @@
|
|||
AssetManifestPath="$(InstallersAssetManifestFilePath)"
|
||||
PublishFlatContainer="true"
|
||||
IsStableBuild="$(IsStableBuild)"
|
||||
PublishingVersion="3" />
|
||||
PublishingVersion="3"
|
||||
PushToLocalStorage="$(PushToLocalStorage)"
|
||||
AssetsLocalStorageDir="$(SourceBuiltAssetsDir)"
|
||||
ShippingPackagesLocalStorageDir="$(SourceBuiltShippingPackagesDir)"
|
||||
NonShippingPackagesLocalStorageDir="$(SourceBuiltNonShippingPackagesDir)"
|
||||
AssetManifestsLocalStorageDir="$(SourceBuiltAssetManifestsDir)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -38,12 +38,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,41 +5,41 @@
|
|||
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="9.0.0-preview.2.24122.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="9.0.0-preview.4.24202.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>6cd8a235fa93f02ae0400a78625dab312c4642f2</Sha>
|
||||
<Sha>0c21ff31531b14dc1712e2811625beb51cacee97</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24122.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-preview.4.24202.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>6cd8a235fa93f02ae0400a78625dab312c4642f2</Sha>
|
||||
<Sha>0c21ff31531b14dc1712e2811625beb51cacee97</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-preview.2.24122.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-preview.4.24202.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>6cd8a235fa93f02ae0400a78625dab312c4642f2</Sha>
|
||||
<Sha>0c21ff31531b14dc1712e2811625beb51cacee97</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-preview.2.24122.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-preview.4.24202.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>6cd8a235fa93f02ae0400a78625dab312c4642f2</Sha>
|
||||
<Sha>0c21ff31531b14dc1712e2811625beb51cacee97</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</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. -->
|
||||
|
@ -47,70 +47,70 @@
|
|||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.runtime.linux-x64" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.runtime.linux-x64" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
<SourceBuild RepoName="runtime" ManagedOnly="false" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-dev-certs" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-dev-certs" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-jwts" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-jwts" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-secrets" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-secrets" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.aspnetcore" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.aspnetcore" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba</Sha>
|
||||
<Sha>4e75678e761c993ed85b108fab57353eeecf5245</Sha>
|
||||
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-preview.2.24123.3">
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-preview.4.24202.52">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>e0a3cd9377fb9decba91d8cbcd50f2fe6107b12c</Sha>
|
||||
<Sha>9d6ed6d197399176e0110fe83d2ef0f86baac8a2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-preview.2.24123.3">
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-preview.4.24202.52">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>e0a3cd9377fb9decba91d8cbcd50f2fe6107b12c</Sha>
|
||||
<Sha>9d6ed6d197399176e0110fe83d2ef0f86baac8a2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-preview.2.24123.3">
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-preview.4.24202.52">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>e0a3cd9377fb9decba91d8cbcd50f2fe6107b12c</Sha>
|
||||
<Sha>9d6ed6d197399176e0110fe83d2ef0f86baac8a2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-preview.2.24123.3">
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-preview.4.24202.52">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>e0a3cd9377fb9decba91d8cbcd50f2fe6107b12c</Sha>
|
||||
<Sha>9d6ed6d197399176e0110fe83d2ef0f86baac8a2</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.sdk" Version="9.0.100-preview.2.24123.3">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.sdk" Version="9.0.100-preview.4.24202.52">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>e0a3cd9377fb9decba91d8cbcd50f2fe6107b12c</Sha>
|
||||
<Sha>9d6ed6d197399176e0110fe83d2ef0f86baac8a2</Sha>
|
||||
<SourceBuild RepoName="sdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
|
||||
|
@ -129,76 +129,76 @@
|
|||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>becc4bd157cd6608b51a5ffe414a5d2de6330272</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.8.0" Version="1.1.0-rc.24120.2">
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.8.0" Version="1.1.0-rc.24202.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1591b24326caa98288e04e18e5c1b75c36c917c1</Sha>
|
||||
<Sha>49c9ad01f057b3c6352bbec12b117acc2224493c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.9.0" Version="1.1.0-rc.24120.2">
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.9.0" Version="1.1.0-rc.24202.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1591b24326caa98288e04e18e5c1b75c36c917c1</Sha>
|
||||
<Sha>49c9ad01f057b3c6352bbec12b117acc2224493c</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.test-templates" Version="1.1.0-rc.24120.2">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.test-templates" Version="1.1.0-rc.24202.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1591b24326caa98288e04e18e5c1b75c36c917c1</Sha>
|
||||
<Sha>49c9ad01f057b3c6352bbec12b117acc2224493c</Sha>
|
||||
<SourceBuild RepoName="test-templates" ManagedOnly="true" />
|
||||
</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="9.0.0-preview.2.24122.2" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="9.0.0-preview.4.24201.2" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/winforms</Uri>
|
||||
<Sha>822e882f4080b6197234cd82ad0d2f2a485a4f35</Sha>
|
||||
<Sha>6710618bf954958130cd0e940cc25223079b12d5</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="9.0.0-preview.2.24122.1" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="9.0.0-preview.4.24202.2" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/wpf</Uri>
|
||||
<Sha>a86dc342ee4a97a9d36c1e55503e5d7ae7eb8b80</Sha>
|
||||
<Sha>25ba139a0c67220a843c989343d27580877c3f8b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.300-beta.24122.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.300-beta.24202.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>02bb351b606468bce98688fccda9d0c8adcd964d</Sha>
|
||||
<Sha>1632b069d8b6a8f323e9f53240a500bf71387c43</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.300-beta.24122.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.300-beta.24202.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>02bb351b606468bce98688fccda9d0c8adcd964d</Sha>
|
||||
<Sha>1632b069d8b6a8f323e9f53240a500bf71387c43</Sha>
|
||||
<SourceBuild RepoName="fsharp" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.10.0-preview-24120-01" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.10.0-release-24177-07" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/microsoft/vstest</Uri>
|
||||
<Sha>48d8e778c871315db0bad221b00f4843b06242c3</Sha>
|
||||
<Sha>1cd0d8998250d36c95ed65a76304ef5d1b33e98f</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.vstest" Version="17.10.0-preview-24120-01" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.vstest" Version="17.10.0-release-24177-07" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/microsoft/vstest</Uri>
|
||||
<Sha>48d8e778c871315db0bad221b00f4843b06242c3</Sha>
|
||||
<Sha>1cd0d8998250d36c95ed65a76304ef5d1b33e98f</Sha>
|
||||
<SourceBuild RepoName="vstest" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-preview.2.24123.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-preview.4.24202.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>99b76018b6e4edc4ce185dd5f3c5697c6941d88e</Sha>
|
||||
<Sha>995989e8b33864648080c55e31116d9818b8760c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.10.0-2.24122.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.11.0-1.24180.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>2bfcc497086de48b15861bb56407324facef4c4a</Sha>
|
||||
<Sha>0288056413b6de0d0941b0b1ed770c273d870fb0</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.roslyn" Version="4.10.0-2.24122.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.roslyn" Version="4.11.0-1.24180.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>2bfcc497086de48b15861bb56407324facef4c4a</Sha>
|
||||
<Sha>0288056413b6de0d0941b0b1ed770c273d870fb0</Sha>
|
||||
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Build" Version="17.10.0-preview-24122-01" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Build" Version="17.11.0-preview-24178-16" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>d4cb14fe4d2e6df0327308feab18ccbb2046246c</Sha>
|
||||
<Sha>7ca3c98fad986066bbf2802c863236b4a0f4e34a</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.10.0-preview-24122-01" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.11.0-preview-24178-16" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>d4cb14fe4d2e6df0327308feab18ccbb2046246c</Sha>
|
||||
<Sha>7ca3c98fad986066bbf2802c863236b4a0f4e34a</Sha>
|
||||
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.10.0-preview.2.41" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.10.0-preview.2.97" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/nuget/nuget.client</Uri>
|
||||
<Sha>63958aab19b7120862ff55eac32ab6a155596a59</Sha>
|
||||
<Sha>fb50d1a45ed10b39b5f335bc3a4bdcaea9b951cf</Sha>
|
||||
<SourceBuildTarball RepoName="nuget-client" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<!-- This is only used by source build SmokeTests. -->
|
||||
|
@ -206,91 +206,91 @@
|
|||
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
|
||||
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-preview.4.24176.2" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>2d3f1fe4807a21879cedba9d3fde8cd329fb17f2</Sha>
|
||||
<Sha>5b7beea1daa64d283d62d52a0027b13ee9484ff6</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="9.0.0-preview.2.24121.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="9.0.0-preview.4.24176.2" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>2d3f1fe4807a21879cedba9d3fde8cd329fb17f2</Sha>
|
||||
<Sha>5b7beea1daa64d283d62d52a0027b13ee9484ff6</Sha>
|
||||
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.24113.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.24172.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>822ff266c5f999ab9ceb6928df59d79285ea4a4f</Sha>
|
||||
<Sha>596a11e185d2274531fe57a2c9e03bbe4f23064d</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="9.0.0-preview.1.24113.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="9.0.0-preview.1.24172.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>822ff266c5f999ab9ceb6928df59d79285ea4a4f</Sha>
|
||||
<Sha>596a11e185d2274531fe57a2c9e03bbe4f23064d</Sha>
|
||||
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.24112.1">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.24201.3">
|
||||
<Uri>https://github.com/dotnet/source-build-externals</Uri>
|
||||
<Sha>ddfb60463c966af55fd0e222c2266170e83d1324</Sha>
|
||||
<Sha>bcd44732882bc2b81b30146c778eb6ccb7fea793</Sha>
|
||||
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.24112.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.24201.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>e9ac4ff4293cf853f3d07eb9e747aef27f5be965</Sha>
|
||||
<Sha>c96672b8b84c307feb035fed6cbe9db85d5b87d3</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.511201" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.520101" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>e9ac4ff4293cf853f3d07eb9e747aef27f5be965</Sha>
|
||||
<Sha>c96672b8b84c307feb035fed6cbe9db85d5b87d3</Sha>
|
||||
<SourceBuild RepoName="command-line-api" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24114.1">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24201.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>d5b02a4900c4d521cb48b8f0d7e3f28175268f7c</Sha>
|
||||
<Sha>0ffb8e9f4a064d8c77f07420dc399baec9daef89</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="9.0.0-beta.24114.1">
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="9.0.0-beta.24201.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>d5b02a4900c4d521cb48b8f0d7e3f28175268f7c</Sha>
|
||||
<Sha>0ffb8e9f4a064d8c77f07420dc399baec9daef89</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.24114.1">
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.24201.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>d5b02a4900c4d521cb48b8f0d7e3f28175268f7c</Sha>
|
||||
<Sha>0ffb8e9f4a064d8c77f07420dc399baec9daef89</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.24112.3">
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.24168.3">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>c041bcdab75f5447be8bd11ddcfbe8e639f13f32</Sha>
|
||||
<Sha>0e9abfee048404d9b994fc64235b42216ce68dad</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.DarcLib" Version="1.1.0-beta.24112.3">
|
||||
<Dependency Name="Microsoft.DotNet.DarcLib" Version="1.1.0-beta.24168.3">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>c041bcdab75f5447be8bd11ddcfbe8e639f13f32</Sha>
|
||||
<Sha>0e9abfee048404d9b994fc64235b42216ce68dad</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24114.1">
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24201.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>d5b02a4900c4d521cb48b8f0d7e3f28175268f7c</Sha>
|
||||
<Sha>0ffb8e9f4a064d8c77f07420dc399baec9daef89</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24114.1">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24201.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>d5b02a4900c4d521cb48b8f0d7e3f28175268f7c</Sha>
|
||||
<Sha>0ffb8e9f4a064d8c77f07420dc399baec9daef89</Sha>
|
||||
<SourceBuild RepoName="arcade" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="9.0.0-alpha.1.23612.13">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>ab1a8224cdf115b65e0db5dc88d11f205068f444</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24119.1">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24162.2">
|
||||
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
|
||||
<Sha>539af5d8ae183d4fe61e8b2f8f4a8505c8a765a7</Sha>
|
||||
<Sha>c0b5d69a1a1513528c77fffff708c7502d57c35c</Sha>
|
||||
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.ScenarioTests.SdkTemplateTests" Version="9.0.0-preview.24057.2">
|
||||
<Dependency Name="Microsoft.DotNet.ScenarioTests.SdkTemplateTests" Version="9.0.0-preview.24176.1">
|
||||
<Uri>https://github.com/dotnet/scenario-tests</Uri>
|
||||
<Sha>bfde902a10d7b672f4fc7e844198ede405dbb9c6</Sha>
|
||||
<Sha>ddccfec3ccd631fb8341c8b6e4e422e8cb339aa5</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.scenario-tests" Version="9.0.0-preview.24057.2">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.scenario-tests" Version="9.0.0-preview.24176.1">
|
||||
<Uri>https://github.com/dotnet/scenario-tests</Uri>
|
||||
<Sha>bfde902a10d7b672f4fc7e844198ede405dbb9c6</Sha>
|
||||
<Sha>ddccfec3ccd631fb8341c8b6e4e422e8cb339aa5</Sha>
|
||||
<SourceBuild RepoName="scenario-tests" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<!-- Aspire isn't really a toolset dependency. However, it only inserts a baseline manifest in installer,
|
||||
|
@ -300,14 +300,14 @@
|
|||
aren't shipping, or those extensions packages depend on aspnetcore packages that won't ship. However, given the cost
|
||||
of maintaining this coherency path is high. This being toolset means that aspire is responsible for its own coherency.
|
||||
-->
|
||||
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-9.0.100-preview.1" Version="9.0.0-preview.1.24116.3">
|
||||
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-9.0.100-preview.1" Version="9.0.0-preview.2.24163.9">
|
||||
<Uri>https://github.com/dotnet/aspire</Uri>
|
||||
<Sha>1dd4b3265f01a50b20522fd3d7f3cd315db5be6b</Sha>
|
||||
<Sha>9faf59f870abdeb427c51c1380fce84d8163f2f0</Sha>
|
||||
</Dependency>
|
||||
<!-- Intermediate is necessary for source build. -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.aspire" Version="9.0.0-preview.1.24116.3">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.aspire" Version="9.0.0-preview.2.24163.9">
|
||||
<Uri>https://github.com/dotnet/aspire</Uri>
|
||||
<Sha>1dd4b3265f01a50b20522fd3d7f3cd315db5be6b</Sha>
|
||||
<Sha>9faf59f870abdeb427c51c1380fce84d8163f2f0</Sha>
|
||||
<SourceBuild RepoName="aspire" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Arcade features -->
|
||||
<PropertyGroup>
|
||||
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
|
||||
</PropertyGroup>
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<VersionMajor>9</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
|
@ -23,15 +18,15 @@
|
|||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">preview</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' == '00'">rtm</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' != '00'">servicing</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">3</PreReleaseVersionIteration>
|
||||
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">4</PreReleaseVersionIteration>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VersionFeature21>30</VersionFeature21>
|
||||
<VersionFeature31>32</VersionFeature31>
|
||||
<VersionFeature50>17</VersionFeature50>
|
||||
<VersionFeature60>26</VersionFeature60>
|
||||
<VersionFeature70>15</VersionFeature70>
|
||||
<VersionFeature80>1</VersionFeature80>
|
||||
<VersionFeature60>27</VersionFeature60>
|
||||
<VersionFeature70>16</VersionFeature70>
|
||||
<VersionFeature80>2</VersionFeature80>
|
||||
<!-- 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>
|
||||
|
@ -44,32 +39,27 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade -->
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>9.0.0-beta.24114.1</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>9.0.0-beta.24201.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade-services -->
|
||||
<MicrosoftDotNetDarcLibVersion>1.1.0-beta.24112.3</MicrosoftDotNetDarcLibVersion>
|
||||
<MicrosoftDotNetDarcLibVersion>1.1.0-beta.24168.3</MicrosoftDotNetDarcLibVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/winforms -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>9.0.0-preview.2.24122.2</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>9.0.0-preview.4.24201.2</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/wpf -->
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>9.0.0-preview.2.24122.1</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>9.0.0-preview.4.24202.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>
|
||||
<MicrosoftDotNetTestProjectTemplates31PackageVersion>1.1.0-rc.22558.1</MicrosoftDotNetTestProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates50PackageVersion>1.1.0-rc.23558.1</MicrosoftDotNetTestProjectTemplates50PackageVersion>
|
||||
<!-- Supported versions -->
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.24069.1</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates70PackageVersion>1.1.0-rc.24069.1</MicrosoftDotNetTestProjectTemplates70PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.24120.2</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates90PackageVersion>1.1.0-rc.24120.2</MicrosoftDotNetTestProjectTemplates90PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.24202.1</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates90PackageVersion>1.1.0-rc.24202.1</MicrosoftDotNetTestProjectTemplates90PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- NUnit3.DotNetNew.Template versions do not 'flow in' -->
|
||||
|
@ -77,49 +67,49 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-preview.2.24121.1</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-preview.2.24121.1</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-preview.2.24121.1</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24121.1</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<DotnetDevCertsPackageVersion>9.0.0-preview.2.24121.1</DotnetDevCertsPackageVersion>
|
||||
<DotnetUserJwtsPackageVersion>9.0.0-preview.2.24121.1</DotnetUserJwtsPackageVersion>
|
||||
<DotnetUserSecretsPackageVersion>9.0.0-preview.2.24121.1</DotnetUserSecretsPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-preview.4.24202.2</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-preview.4.24202.2</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-preview.4.24202.2</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.4.24202.2</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<DotnetDevCertsPackageVersion>9.0.0-preview.4.24202.2</DotnetDevCertsPackageVersion>
|
||||
<DotnetUserJwtsPackageVersion>9.0.0-preview.4.24202.2</DotnetUserJwtsPackageVersion>
|
||||
<DotnetUserSecretsPackageVersion>9.0.0-preview.4.24202.2</DotnetUserSecretsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/sdk -->
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-preview.2.24123.3</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>9.0.100-preview.2.24123.3</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-preview.2.24123.3</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-preview.4.24202.52</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>9.0.100-preview.4.24202.52</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-preview.4.24202.52</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
|
||||
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/roslyn -->
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>4.10.0-2.24122.3</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>4.11.0-1.24180.2</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/corefx -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-preview.2.24123.1</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-preview.4.24202.9</MicrosoftNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/core-setup -->
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24123.1</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-preview.2.24123.1</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-preview.2.24123.1</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-preview.2.24123.1</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-preview.2.24123.1</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.4.24202.9</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-preview.4.24202.9</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-preview.4.24202.9</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-preview.4.24202.9</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-preview.4.24202.9</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24122.1</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-preview.2.24122.1</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-preview.2.24122.1</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-preview.2.24122.1</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-preview.4.24202.13</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-preview.4.24202.13</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-preview.4.24202.13</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-preview.4.24202.13</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 version above and create aliases without the winx64 here for clarity elsewhere. -->
|
||||
|
@ -130,11 +120,11 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/NuGet/NuGet.Client -->
|
||||
<NuGetBuildTasksPackageVersion>6.10.0-preview.2.41</NuGetBuildTasksPackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>6.10.0-preview.2.97</NuGetBuildTasksPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/deployment-tools -->
|
||||
<PropertyGroup>
|
||||
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.24113.2</MicrosoftDeploymentDotNetReleasesVersion>
|
||||
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.24172.2</MicrosoftDeploymentDotNetReleasesVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Automated versions for asp.net templates -->
|
||||
|
@ -167,18 +157,14 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Cross-release dependency versions -->
|
||||
<MicrosoftAspNetCoreAppRuntime50PackageVersion>5.0.17</MicrosoftAspNetCoreAppRuntime50PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime60PackageVersion>6.0.14</MicrosoftAspNetCoreAppRuntime60PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime70PackageVersion>7.0.3</MicrosoftAspNetCoreAppRuntime70PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates50PackageVersion>5.0.403</MicrosoftDotNetCommonItemTemplates50PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates70PackageVersion>7.0.100</MicrosoftDotNetCommonItemTemplates70PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates80PackageVersion>8.0.100</MicrosoftDotNetCommonItemTemplates80PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates50PackageVersion>5.0.17-servicing.22215.4</MicrosoftWinFormsProjectTemplates50PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates70PackageVersion>7.0.0-rtm.22518.7</MicrosoftWinFormsProjectTemplates70PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates80PackageVersion>8.0.0-rtm.23531.5</MicrosoftWinFormsProjectTemplates80PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates50PackageVersion>5.0.17-servicing.22218.2</MicrosoftWPFProjectTemplates50PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates70PackageVersion>7.0.0-rtm.22518.2</MicrosoftWPFProjectTemplates70PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates80PackageVersion>8.0.0-rtm.23531.4</MicrosoftWPFProjectTemplates80PackageVersion>
|
||||
|
@ -218,45 +204,19 @@
|
|||
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftWinFormsProjectTemplates60PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftWPFProjectTemplates60PackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion>
|
||||
<NUnit3Templates60PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates60PackageVersion>
|
||||
<!-- 5.0 Template versions -->
|
||||
<AspNetCorePackageVersionFor50Templates>5.0.17</AspNetCorePackageVersionFor50Templates>
|
||||
<MicrosoftDotNetCommonProjectTemplates50PackageVersion>$(MicrosoftDotNetCommonItemTemplates50PackageVersion)</MicrosoftDotNetCommonProjectTemplates50PackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>$(MicrosoftWinFormsProjectTemplates50PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates50PackageVersion>$(MicrosoftWPFProjectTemplates50PackageVersion)</MicrosoftDotNetWpfProjectTemplates50PackageVersion>
|
||||
<NUnit3Templates50PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates50PackageVersion>
|
||||
<!-- 3.1 Template versions -->
|
||||
<AspNetCorePackageVersionFor31Templates>3.1.32</AspNetCorePackageVersionFor31Templates>
|
||||
<MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>3.2.1</MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates31PackageVersion>3.1.27</MicrosoftDotNetCommonItemTemplates31PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates31PackageVersion>$(MicrosoftDotNetCommonItemTemplates31PackageVersion)</MicrosoftDotNetCommonProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>4.8.1-servicing.19605.5</MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates31PackageVersion>3.1.2-servicing.20066.4</MicrosoftDotNetWpfProjectTemplates31PackageVersion>
|
||||
<NUnit3Templates31PackageVersion>1.7.2</NUnit3Templates31PackageVersion>
|
||||
<!-- 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>
|
||||
<VersionToolsVersion>2.2.0-beta.19072.10</VersionToolsVersion>
|
||||
<DotnetDebToolVersion>2.0.0</DotnetDebToolVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.10.0-preview-24120-01</MicrosoftNETTestSdkVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.10.0-release-24177-07</MicrosoftNETTestSdkVersion>
|
||||
<MicrosoftExtensionsLoggingConsoleVersion>9.0.0-alpha.1.24058.10</MicrosoftExtensionsLoggingConsoleVersion>
|
||||
<MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>9.0.0-preview.24057.2</MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>
|
||||
<MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>9.0.0-preview.24176.1</MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Workload manifest package versions -->
|
||||
<PropertyGroup>
|
||||
<AspireFeatureBand>9.0.100-preview.1</AspireFeatureBand>
|
||||
<MicrosoftNETSdkAspireManifest90100preview1PackageVersion>9.0.0-preview.1.24116.3</MicrosoftNETSdkAspireManifest90100preview1PackageVersion>
|
||||
<MicrosoftNETSdkAspireManifest90100preview1PackageVersion>9.0.0-preview.2.24163.9</MicrosoftNETSdkAspireManifest90100preview1PackageVersion>
|
||||
<MauiFeatureBand>9.0.100-preview.1</MauiFeatureBand>
|
||||
<MauiWorkloadManifestVersion>9.0.0-preview.1.9973</MauiWorkloadManifestVersion>
|
||||
<XamarinAndroidWorkloadManifestVersion>34.99.0-preview.1.151</XamarinAndroidWorkloadManifestVersion>
|
||||
|
@ -265,7 +225,7 @@
|
|||
<XamarinMacOSWorkloadManifestVersion>14.2.9088-net9-p1</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>17.2.9088-net9-p1</XamarinTvOSWorkloadManifestVersion>
|
||||
<!-- Workloads from dotnet/emsdk -->
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-preview.2.24121.1</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-preview.4.24176.2</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
|
||||
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion)</EmscriptenWorkloadManifestVersion>
|
||||
<!-- emsdk workload prerelease version band must match the emsdk feature band -->
|
||||
<EmscriptenWorkloadFeatureBand>9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[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.vs2022.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022.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
|
||||
|
||||
# Test parameters
|
||||
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
|
||||
|
@ -32,7 +32,7 @@ parameters:
|
|||
- arm64
|
||||
- x64
|
||||
- x86
|
||||
|
||||
|
||||
# Linux portable. If true, passes portable switch to build
|
||||
- name: linuxPortable
|
||||
type: boolean
|
||||
|
@ -69,7 +69,7 @@ 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 }}:
|
||||
|
@ -77,28 +77,34 @@ jobs:
|
|||
${{ 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.vs2022.amd64.open
|
||||
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
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2204.Amd64
|
||||
image: 1es-ubuntu-2204
|
||||
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)
|
|
@ -125,7 +125,6 @@ function Build {
|
|||
/p:Test=$test `
|
||||
/p:Pack=$pack `
|
||||
/p:DotNetBuildRepo=$($productBuild -or $verticalBuild) `
|
||||
/p:ArcadeBuildVertical=$verticalBuild `
|
||||
/p:IntegrationTest=$integrationTest `
|
||||
/p:PerformanceTest=$performanceTest `
|
||||
/p:Sign=$sign `
|
||||
|
|
|
@ -241,7 +241,6 @@ function Build {
|
|||
/p:DotNetBuildRepo=$product_build \
|
||||
/p:ArcadeBuildFromSource=$source_build \
|
||||
/p:DotNetBuildSourceOnly=$source_build \
|
||||
/p:ArcadeBuildVertical=$vertical_build \
|
||||
/p:Rebuild=$rebuild \
|
||||
/p:Test=$test \
|
||||
/p:Pack=$pack \
|
||||
|
|
|
@ -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
|
||||
|
@ -125,8 +125,8 @@ if [ -z "$CC" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Only lld version >= 9 can be considered stable. lld doesn't support s390x.
|
||||
if [ "$compiler" = "clang" ] && [ -n "$majorVersion" ] && [ "$majorVersion" -ge 9 ] && [ "$build_arch" != "s390x" ]; then
|
||||
# Only lld version >= 9 can be considered stable. lld supports s390x starting from 18.0.
|
||||
if [ "$compiler" = "clang" ] && [ -n "$majorVersion" ] && [ "$majorVersion" -ge 9 ] && ([ "$build_arch" != "s390x" ] || [ "$majorVersion" -ge 18 ]); then
|
||||
if "$CC" -fuse-ld=lld -Wl,--version >/dev/null 2>&1; then
|
||||
LDFLAGS="-fuse-ld=lld"
|
||||
fi
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/bin/sh
|
||||
|
||||
# getNonPortableDistroRid
|
||||
#
|
||||
|
@ -11,21 +11,20 @@
|
|||
# non-portable rid
|
||||
getNonPortableDistroRid()
|
||||
{
|
||||
local targetOs="$1"
|
||||
local targetArch="$2"
|
||||
local rootfsDir="$3"
|
||||
local nonPortableRid=""
|
||||
targetOs="$1"
|
||||
targetArch="$2"
|
||||
rootfsDir="$3"
|
||||
nonPortableRid=""
|
||||
|
||||
if [ "$targetOs" = "linux" ]; then
|
||||
# shellcheck disable=SC1091
|
||||
if [ -e "${rootfsDir}/etc/os-release" ]; then
|
||||
source "${rootfsDir}/etc/os-release"
|
||||
|
||||
if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then
|
||||
# remove the last version digit
|
||||
VERSION_ID="${VERSION_ID%.*}"
|
||||
. "${rootfsDir}/etc/os-release"
|
||||
if [ "${ID}" = "rhel" ] || [ "${ID}" = "rocky" ] || [ "${ID}" = "alpine" ] || [ "${ID}" = "ol" ]; then
|
||||
VERSION_ID="${VERSION_ID%.*}" # Remove the last version digit for these distros
|
||||
fi
|
||||
|
||||
if [[ "${VERSION_ID:-}" =~ ^([[:digit:]]|\.)+$ ]]; then
|
||||
if echo "${VERSION_ID:-}" | grep -qE '^([[:digit:]]|\.)+$'; then
|
||||
nonPortableRid="${ID}.${VERSION_ID}-${targetArch}"
|
||||
else
|
||||
# Rolling release distros either do not set VERSION_ID, set it as blank or
|
||||
|
@ -33,45 +32,45 @@ getNonPortableDistroRid()
|
|||
# so omit it here to be consistent with everything else.
|
||||
nonPortableRid="${ID}-${targetArch}"
|
||||
fi
|
||||
|
||||
elif [ -e "${rootfsDir}/android_platform" ]; then
|
||||
source "$rootfsDir"/android_platform
|
||||
# shellcheck disable=SC1091
|
||||
. "${rootfsDir}/android_platform"
|
||||
nonPortableRid="$RID"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$targetOs" = "freebsd" ]; then
|
||||
# $rootfsDir can be empty. freebsd-version is shell script and it should always work.
|
||||
__freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; })
|
||||
# $rootfsDir can be empty. freebsd-version is a shell script and should always work.
|
||||
__freebsd_major_version=$("$rootfsDir"/bin/freebsd-version | cut -d'.' -f1)
|
||||
nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}"
|
||||
elif command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then
|
||||
elif command -v getprop >/dev/null && getprop ro.product.system.model | grep -qi android; then
|
||||
__android_sdk_version=$(getprop ro.build.version.sdk)
|
||||
nonPortableRid="android.$__android_sdk_version-${targetArch}"
|
||||
elif [ "$targetOs" = "illumos" ]; then
|
||||
__uname_version=$(uname -v)
|
||||
case "$__uname_version" in
|
||||
omnios-*)
|
||||
__omnios_major_version=$(echo "${__uname_version:8:2}")
|
||||
nonPortableRid=omnios."$__omnios_major_version"-"$targetArch"
|
||||
;;
|
||||
__omnios_major_version=$(echo "$__uname_version" | cut -c9-10)
|
||||
nonPortableRid="omnios.$__omnios_major_version-${targetArch}"
|
||||
;;
|
||||
joyent_*)
|
||||
__smartos_major_version=$(echo "${__uname_version:7:4}")
|
||||
nonPortableRid=smartos."$__smartos_major_version"-"$targetArch"
|
||||
;;
|
||||
illumos_*)
|
||||
nonPortableRid=openindiana-"$targetArch"
|
||||
;;
|
||||
__smartos_major_version=$(echo "$__uname_version" | cut -c9-10)
|
||||
nonPortableRid="smartos.$__smartos_major_version-${targetArch}"
|
||||
;;
|
||||
*)
|
||||
nonPortableRid="illumos-${targetArch}"
|
||||
;;
|
||||
esac
|
||||
elif [ "$targetOs" = "solaris" ]; then
|
||||
__uname_version=$(uname -v)
|
||||
__solaris_major_version=$(echo "${__uname_version%.*}")
|
||||
nonPortableRid=solaris."$__solaris_major_version"-"$targetArch"
|
||||
__solaris_major_version=$(echo "$__uname_version" | cut -d'.' -f1)
|
||||
nonPortableRid="solaris.$__solaris_major_version-${targetArch}"
|
||||
elif [ "$targetOs" = "haiku" ]; then
|
||||
__uname_release=$(uname -r)
|
||||
__uname_release="$(uname -r)"
|
||||
nonPortableRid=haiku.r"$__uname_release"-"$targetArch"
|
||||
fi
|
||||
|
||||
echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')"
|
||||
echo "$nonPortableRid" | tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
|
||||
# initDistroRidGlobal
|
||||
|
@ -85,26 +84,23 @@ getNonPortableDistroRid()
|
|||
# None
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# It is important to note that the function does not return anything, but it
|
||||
# exports the following variables on success:
|
||||
#
|
||||
# __DistroRid : Non-portable rid of the target platform.
|
||||
# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform.
|
||||
#
|
||||
# It is important to note that the function does not return anything, but it
|
||||
# exports the following variables on success:
|
||||
# __DistroRid : Non-portable rid of the target platform.
|
||||
# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform.
|
||||
initDistroRidGlobal()
|
||||
{
|
||||
local targetOs="$1"
|
||||
local targetArch="$2"
|
||||
local rootfsDir=""
|
||||
if [ "$#" -ge 3 ]; then
|
||||
targetOs="$1"
|
||||
targetArch="$2"
|
||||
rootfsDir=""
|
||||
if [ $# -ge 3 ]; then
|
||||
rootfsDir="$3"
|
||||
fi
|
||||
|
||||
if [ -n "${rootfsDir}" ]; then
|
||||
# We may have a cross build. Check for the existence of the rootfsDir
|
||||
if [ ! -e "${rootfsDir}" ]; then
|
||||
echo "Error rootfsDir has been passed, but the location is not valid."
|
||||
echo "Error: rootfsDir has been passed, but the location is not valid."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
@ -119,7 +115,7 @@ initDistroRidGlobal()
|
|||
STRINGS="$(command -v llvm-strings || true)"
|
||||
fi
|
||||
|
||||
# Check for musl-based distros (e.g Alpine Linux, Void Linux).
|
||||
# Check for musl-based distros (e.g. Alpine Linux, Void Linux).
|
||||
if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl ||
|
||||
( [ -n "$STRINGS" ] && "$STRINGS" "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl ); then
|
||||
__PortableTargetOS="linux-musl"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/bin/sh
|
||||
|
||||
# Use uname to determine what the OS is.
|
||||
OSName=$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||
|
@ -54,6 +54,7 @@ case "$CPUName" in
|
|||
;;
|
||||
|
||||
armv7l|armv8l)
|
||||
# shellcheck disable=SC1091
|
||||
if (NAME=""; . /etc/os-release; test "$NAME" = "Tizen"); then
|
||||
arch=armel
|
||||
else
|
||||
|
|
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, 'internal') }}
|
||||
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 }}
|
159
eng/common/templates-official/job/publish-build-assets.yml
Normal file
159
eng/common/templates-official/job/publish-build-assets.yml
Normal file
|
@ -0,0 +1,159 @@
|
|||
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
|
||||
# unconditional - needed for logs publishing (redactor tool version)
|
||||
- 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')) }}:
|
||||
- checkout: self
|
||||
fetchDepth: 3
|
||||
clean: true
|
||||
|
||||
- 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.dot.net
|
||||
/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
|
||||
|
||||
${{ 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 }}
|
67
eng/common/templates-official/job/source-index-stage1.yml
Normal file
67
eng/common/templates-official/job/source-index-stage1.yml
Normal file
|
@ -0,0 +1,67 @@
|
|||
parameters:
|
||||
runAsPublic: false
|
||||
sourceIndexPackageVersion: 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: SourceIndexPackageVersion
|
||||
value: ${{ parameters.sourceIndexPackageVersion }}
|
||||
- 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-official/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if eq(parameters.pool, '') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: windows.vs2022.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: windows.vs2022.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 $(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
|
||||
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')) }}:
|
||||
- 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)
|
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,24 @@
|
|||
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.dot.net"
|
||||
- name: MaestroApiAccessToken
|
||||
value: $(MaestroAccessToken)
|
||||
- name: MaestroApiVersion
|
||||
value: "2020-02-20"
|
||||
|
||||
- name: SourceLinkCLIVersion
|
||||
value: 3.0.0
|
||||
- name: SymbolToolVersion
|
||||
value: 1.0.1
|
||||
- name: BinlogToolVersion
|
||||
value: 1.0.11
|
||||
|
||||
- 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)
|
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 }}
|
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: 7.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)
|
||||
|
49
eng/common/templates-official/steps/publish-logs.yml
Normal file
49
eng/common/templates-official/steps/publish-logs.yml
Normal file
|
@ -0,0 +1,49 @@
|
|||
parameters:
|
||||
StageLabel: ''
|
||||
JobLabel: ''
|
||||
CustomSensitiveDataList: ''
|
||||
# A default - in case value from eng/common/templates-official/post-build/common-variables.yml is not passed
|
||||
BinlogToolVersion: '1.0.11'
|
||||
|
||||
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: PowerShell@2
|
||||
displayName: Redact Logs
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1
|
||||
# For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml
|
||||
# Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
|
||||
# If the file exists - sensitive data for redaction will be sourced from it
|
||||
# (single entry per line, lines starting with '# ' are considered comments and skipped)
|
||||
arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs'
|
||||
-BinlogToolVersion ${{parameters.BinlogToolVersion}}
|
||||
-TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
|
||||
'$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
'$(MaestroAccessToken)'
|
||||
'$(dn-bot-all-orgs-artifact-feeds-rw)'
|
||||
'$(akams-client-id)'
|
||||
'$(akams-client-secret)'
|
||||
'$(microsoft-symbol-server-pat)'
|
||||
'$(symweb-symbol-server-pat)'
|
||||
'$(dn-bot-all-orgs-build-rw-code-rw)'
|
||||
${{parameters.CustomSensitiveDataList}}
|
||||
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)
|
93
eng/common/templates-official/steps/send-to-helix.yml
Normal file
93
eng/common/templates-official/steps/send-to-helix.yml
Normal file
|
@ -0,0 +1,93 @@
|
|||
# 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
|
||||
HelixProjectPath: 'eng/common/helixpublish.proj' # optional -- path to the project file to build relative to BUILD_SOURCESDIRECTORY
|
||||
HelixProjectArguments: '' # optional -- arguments passed to the build command
|
||||
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/${{ parameters.HelixProjectPath }} /restore /p:TreatWarningsAsErrors=false ${{ parameters.HelixProjectArguments }} /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/${{ parameters.HelixProjectPath }} /restore /p:TreatWarningsAsErrors=false ${{ parameters.HelixProjectArguments }} /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 }}
|
131
eng/common/templates-official/steps/source-build.yml
Normal file
131
eng/common/templates-official/steps/source-build.yml
Normal file
|
@ -0,0 +1,131 @@
|
|||
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:DotNetBuildSourceOnly=true \
|
||||
/p:DotNetBuildRepo=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/sb/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/sb/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
|
||||
|
|
|
@ -65,6 +65,11 @@ $ErrorActionPreference = 'Stop'
|
|||
# Base-64 encoded SAS token that has permission to storage container described by $runtimeSourceFeed
|
||||
[string]$runtimeSourceFeedKey = if (Test-Path variable:runtimeSourceFeedKey) { $runtimeSourceFeedKey } else { $null }
|
||||
|
||||
# True if the build is a product build
|
||||
[bool]$productBuild = if (Test-Path variable:productBuild) { $productBuild } else { $false }
|
||||
|
||||
[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() }
|
||||
|
||||
function Create-Directory ([string[]] $path) {
|
||||
New-Item -Path $path -Force -ItemType 'Directory' | Out-Null
|
||||
}
|
||||
|
@ -850,7 +855,8 @@ function MSBuild-Core() {
|
|||
}
|
||||
|
||||
# When running on Azure Pipelines, override the returned exit code to avoid double logging.
|
||||
if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null) {
|
||||
# Skip this when the build is a child of the VMR orchestrator build.
|
||||
if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$productBuild -and -not($properties -like "*DotNetBuildRepo=true*")) {
|
||||
Write-PipelineSetResult -Result "Failed" -Message "msbuild execution failed."
|
||||
# Exiting with an exit code causes the azure pipelines task to log yet another "noise" error
|
||||
# The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error
|
||||
|
|
|
@ -68,6 +68,9 @@ fi
|
|||
runtime_source_feed=${runtime_source_feed:-''}
|
||||
runtime_source_feed_key=${runtime_source_feed_key:-''}
|
||||
|
||||
# True if the build is a product build
|
||||
product_build=${product_build:-false}
|
||||
|
||||
# Resolve any symlinks in the given path.
|
||||
function ResolvePath {
|
||||
local path=$1
|
||||
|
@ -141,7 +144,7 @@ function InitializeDotNetCli {
|
|||
if [[ $global_json_has_runtimes == false && -n "${DOTNET_INSTALL_DIR:-}" && -d "$DOTNET_INSTALL_DIR/sdk/$dotnet_sdk_version" ]]; then
|
||||
dotnet_root="$DOTNET_INSTALL_DIR"
|
||||
else
|
||||
dotnet_root="$repo_root/.dotnet"
|
||||
dotnet_root="${repo_root}.dotnet"
|
||||
|
||||
export DOTNET_INSTALL_DIR="$dotnet_root"
|
||||
|
||||
|
@ -503,7 +506,8 @@ function MSBuild-Core {
|
|||
echo "Build failed with exit code $exit_code. Check errors above."
|
||||
|
||||
# When running on Azure Pipelines, override the returned exit code to avoid double logging.
|
||||
if [[ "$ci" == "true" && -n ${SYSTEM_TEAMPROJECT:-} ]]; then
|
||||
# Skip this when the build is a child of the VMR orchestrator build.
|
||||
if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true && "$properties" != *"DotNetBuildRepo=true"* ]]; then
|
||||
Write-PipelineSetResult -result "Failed" -message "msbuild execution failed."
|
||||
# Exiting with an exit code causes the azure pipelines task to log yet another "noise" error
|
||||
# The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# SdkTests do not currently work with globally installed CLI as they use dotnet-install.ps1 to install more runtimes
|
||||
|
||||
$script:useInstalledDotNetCli = $false
|
||||
|
||||
# Add CMake to the path.
|
||||
$env:PATH = "$PSScriptRoot\..\.tools\bin;$env:PATH"
|
||||
$script:useInstalledDotNetCli = $false
|
|
@ -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,6 +1,4 @@
|
|||
#
|
||||
# See https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema for details on this file.
|
||||
#
|
||||
# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=1224
|
||||
|
||||
schedules:
|
||||
# Cron timezone is UTC.
|
||||
|
|
|
@ -38,7 +38,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'"
|
||||
|
@ -74,6 +74,10 @@ jobs:
|
|||
patterns: '**/Private.SourceBuilt.Artifacts.+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*).${{ parameters.targetRid }}.tar.gz'
|
||||
displayName: Download Source Built Artifacts
|
||||
|
||||
- script: |
|
||||
find $(Pipeline.Workspace)/Artifacts -type f -exec mv {} $(Pipeline.Workspace)/Artifacts \;
|
||||
displayName: Move Artifacts to root
|
||||
|
||||
- script: |
|
||||
platform="linux"
|
||||
if [[ ${{ parameters.targetRid }} =~ "alpine" ]]; then
|
||||
|
|
|
@ -31,6 +31,11 @@ parameters:
|
|||
type: string
|
||||
default: ''
|
||||
|
||||
- name: useMonoRuntime
|
||||
displayName: True when build output uses the mono runtime
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
#### SOURCE-ONLY parameters ####
|
||||
|
||||
# Instead of building the VMR directly, exports the sources into a tarball and builds from that
|
||||
|
@ -66,11 +71,6 @@ parameters:
|
|||
type: boolean
|
||||
default: false
|
||||
|
||||
- name: useMonoRuntime
|
||||
displayName: True when build output uses the mono runtime
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
# Freeform field for extra values to pass to build.sh for special build modes
|
||||
- name: extraProperties
|
||||
type: string
|
||||
|
@ -93,18 +93,24 @@ parameters:
|
|||
|
||||
jobs:
|
||||
- job: ${{ parameters.buildName }}_${{ parameters.architecture }}
|
||||
timeoutInMinutes: 150
|
||||
pool: ${{ parameters.pool }}
|
||||
|
||||
# Currently, CodeQL slows the build down too much
|
||||
# https://github.com/dotnet/source-build/issues/4276
|
||||
${{ if and(parameters.isBuiltFromVmr, startswith(parameters.buildName, 'Windows'), eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
timeoutInMinutes: 720
|
||||
${{ else }}:
|
||||
timeoutInMinutes: 150
|
||||
|
||||
${{ if ne(parameters.reuseBuildArtifactsFrom, '') }}:
|
||||
# Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete accessment of the build status.
|
||||
# The build shortcuts when stage 1 build fails and doesn't produce the SDK.
|
||||
condition: succeededOrFailed()
|
||||
dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}
|
||||
variables:
|
||||
- template: /eng/common/templates/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'))) }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal'), not(startswith(parameters.vmrBranch, 'internal/release/')), ne(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- group: DotNetBot-GitHub
|
||||
- ${{ else }}:
|
||||
- name: BotAccount-dotnet-bot-repo-PAT
|
||||
|
@ -128,9 +134,30 @@ jobs:
|
|||
- name: sourcesPath
|
||||
value: $(vmrPath)
|
||||
|
||||
templateContext:
|
||||
outputs:
|
||||
- output: pipelineArtifact
|
||||
displayName: Publish BuildLogs
|
||||
condition: succeededOrFailed()
|
||||
targetPath: $(Build.StagingDirectory)/BuildLogs
|
||||
artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
|
||||
- output: pipelineArtifact
|
||||
path: $(Build.ArtifactStagingDirectory)/publishing
|
||||
artifact: $(Agent.JobName)_Artifacts
|
||||
displayName: Publish Artifacts
|
||||
condition: always()
|
||||
|
||||
- ${{ if not(parameters.isBuiltFromVmr) }}:
|
||||
- output: pipelineArtifact
|
||||
displayName: Upload failed patches
|
||||
condition: failed()
|
||||
targetPath: $(Agent.TempDirectory)
|
||||
artifactName: $(System.JobDisplayName)_FailedPatches
|
||||
|
||||
steps:
|
||||
- ${{ if not(parameters.isBuiltFromVmr) }}:
|
||||
- template: ../steps/vmr-prepare.yml
|
||||
- template: ../steps/vmr-prepare.yml@self
|
||||
parameters:
|
||||
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
vmrBranch: $(System.PullRequest.TargetBranch)
|
||||
|
@ -139,7 +166,7 @@ jobs:
|
|||
|
||||
# Synchronize new content in the VMR during PRs (we expect this to come
|
||||
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- template: ../steps/vmr-pull-updates.yml
|
||||
- template: ../steps/vmr-pull-updates.yml@self
|
||||
parameters:
|
||||
vmrPath: $(vmrPath)
|
||||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
|
@ -176,7 +203,7 @@ jobs:
|
|||
- task: CopyFiles@2
|
||||
displayName: Copy Previous Build
|
||||
inputs:
|
||||
SourceFolder: $(Pipeline.Workspace)/${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts
|
||||
SourceFolder: $(Pipeline.Workspace)/${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts/assets/Release
|
||||
Contents: '*.tar.gz'
|
||||
TargetFolder: $(sourcesPath)/prereqs/packages/archive/
|
||||
|
||||
|
@ -208,7 +235,7 @@ jobs:
|
|||
exit 1
|
||||
fi
|
||||
displayName: Setup Previously Source-Built SDK
|
||||
|
||||
|
||||
- ${{ if eq(parameters.targetOS, 'windows') }}:
|
||||
- script: |
|
||||
call $(sourcesPath)\build.cmd -ci -cleanWhileBuilding -prepareMachine ${{ parameters.extraProperties }}
|
||||
|
@ -245,7 +272,7 @@ jobs:
|
|||
echo "##vso[task.setvariable variable=additionalBuildArgs]--with-sdk /vmr/.dotnet"
|
||||
fi
|
||||
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep.sh $customPrepArgs
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep-source-build.sh $customPrepArgs
|
||||
displayName: Prep the Build
|
||||
|
||||
- script: |
|
||||
|
@ -278,7 +305,7 @@ jobs:
|
|||
if [[ -n "${{ parameters.crossRootFs }}" ]]; then
|
||||
customEnvVars="$customEnvVars ROOTFS_DIR=${{ parameters.crossRootFs}}"
|
||||
if [[ '${{ parameters.targetArchitecture }}' != 'wasm' ]]; then
|
||||
customEnvVars="$customEnvVars CROSSCOMPILE=1"
|
||||
extraBuildProperties="$extraBuildProperties /p:CrossBuild=true"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -301,11 +328,13 @@ jobs:
|
|||
# Allows Arcade to have access to the commit for the build, pass it through to the container
|
||||
customEnvVars="$customEnvVars BUILD_SOURCEVERSION=$BUILD_SOURCEVERSION"
|
||||
|
||||
customEnvVars="$customEnvVars BUILD_BUILDNUMBER=$(Build.BuildNumber)"
|
||||
|
||||
customDockerRunArgs=""
|
||||
for envVar in $customEnvVars; do
|
||||
customDockerRunArgs="$customDockerRunArgs -e $envVar"
|
||||
done
|
||||
|
||||
|
||||
if [[ '${{ parameters.runOnline }}' == 'False' ]]; then
|
||||
customDockerRunArgs="$customDockerRunArgs --network none"
|
||||
fi
|
||||
|
@ -342,10 +371,10 @@ jobs:
|
|||
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.
|
||||
- powershell: |
|
||||
function CopyWithRelativeFolders($sourcePath, $targetFolder, $filter) {
|
||||
Get-ChildItem -Path $sourcePath -Filter $filter -Recurse | ForEach-Object {
|
||||
Get-ChildItem -Path $sourcePath -Filter $filter -Recurse | ForEach-Object {
|
||||
$targetPath = Join-Path $targetFolder (Resolve-Path -Relative $_.FullName)
|
||||
New-Item -ItemType Directory -Path (Split-Path -Parent $targetPath) -Force | Out-Null
|
||||
Copy-Item $_.FullName -Destination $targetPath -Force
|
||||
Copy-Item $_.FullName -Destination $targetPath -Force
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -356,6 +385,7 @@ jobs:
|
|||
|
||||
CopyWithRelativeFolders "artifacts/" $targetFolder "*.binlog"
|
||||
CopyWithRelativeFolders "artifacts/" $targetFolder "*.log"
|
||||
CopyWithRelativeFolders "artifacts/" $targetFolder "*.diff"
|
||||
CopyWithRelativeFolders "src/" $targetFolder "*.binlog"
|
||||
CopyWithRelativeFolders "src/" $targetFolder "*.log"
|
||||
CopyWithRelativeFolders "test/" $targetFolder "*.binlog"
|
||||
|
@ -382,8 +412,10 @@ jobs:
|
|||
cd "$(sourcesPath)"
|
||||
find artifacts/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
|
||||
find artifacts/ -type f -name "*.log" -exec rsync -R {} -t ${targetFolder} \;
|
||||
find artifacts/ -type f -name "*.diff" -exec rsync -R {} -t ${targetFolder} \;
|
||||
if [[ "${{ parameters.buildSourceOnly }}" == "True" ]]; then
|
||||
find artifacts/prebuilt-report/ -exec rsync -R {} -t ${targetFolder} \;
|
||||
find artifacts/log/binary-report/ -exec rsync -R {} -t ${targetFolder} \;
|
||||
fi
|
||||
find src/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \;
|
||||
find src/ -type f -name "*.log" -exec rsync -R {} -t ${targetFolder} \;
|
||||
|
@ -399,11 +431,12 @@ jobs:
|
|||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- publish: '$(Build.StagingDirectory)/BuildLogs'
|
||||
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
displayName: Publish BuildLogs
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
- ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- publish: $(Build.StagingDirectory)/BuildLogs
|
||||
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
|
||||
displayName: Publish BuildLogs
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
# Only upload test results if enabled
|
||||
- ${{ if eq(parameters.runTests, 'True') }}:
|
||||
|
@ -419,14 +452,26 @@ jobs:
|
|||
publishRunAttachments: true
|
||||
testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName)
|
||||
|
||||
- publish: '$(sourcesPath)/artifacts/assets/Release/'
|
||||
artifact: $(Agent.JobName)_Artifacts
|
||||
displayName: Publish Artifacts
|
||||
condition: and(succeededOrFailed(), eq(variables['hasAssets'], 'true'))
|
||||
continueOnError: true
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
SourceFolder: $(sourcesPath)/artifacts
|
||||
Contents: |
|
||||
VerticalManifest.xml
|
||||
assets/**
|
||||
TargetFolder: $(Build.ArtifactStagingDirectory)/publishing
|
||||
displayName: Copy artifacts to Artifact Staging Directory
|
||||
|
||||
# When building from source, the Private.SourceBuilt.Artifacts archive already contains the nuget packages
|
||||
- ${{ if ne(parameters.buildSourceOnly, 'true') }}:
|
||||
- publish: '$(sourcesPath)/artifacts/packages/Release/'
|
||||
artifact: $(Agent.JobName)_Packages
|
||||
displayName: Publish Packages
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
SourceFolder: $(sourcesPath)/artifacts/packages
|
||||
TargetFolder: $(Build.ArtifactStagingDirectory)/publishing/packages
|
||||
displayName: Copy packages to Artifact Staging Directory
|
||||
|
||||
- ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- publish: $(Build.ArtifactStagingDirectory)/publishing
|
||||
artifact: $(Agent.JobName)_Artifacts
|
||||
displayName: Publish Artifacts
|
||||
condition: succeededOrFailed()
|
||||
continueOnError: true
|
||||
|
|
|
@ -2,10 +2,6 @@
|
|||
### It synchronizes the content of the VMR to this new commit and pushes the changes
|
||||
|
||||
parameters:
|
||||
- name: jobName
|
||||
displayName: Name of the pipeline job
|
||||
type: string
|
||||
|
||||
- name: targetRef
|
||||
displayName: Target revision of dotnet/installer to synchronize
|
||||
type: string
|
||||
|
@ -22,11 +18,14 @@ parameters:
|
|||
default: false
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.jobName }}
|
||||
- job: Synchronize_VMR
|
||||
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) }}:
|
||||
|
@ -44,23 +43,17 @@ jobs:
|
|||
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
|
||||
parameters:
|
||||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
|
||||
# TODO (https://github.com/dotnet/arcade/issues/11332): Allow full CG?
|
||||
# Currently, we ignore dirs of individual repos - they have been scanned before
|
||||
- ${{ if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
inputs:
|
||||
sourceScanPath: $(Agent.BuildDirectory)/vmr
|
||||
ignoreDirectories: $(Agent.BuildDirectory)/vmr/src
|
||||
|
||||
- template: ../steps/vmr-pull-updates.yml
|
||||
parameters:
|
||||
|
@ -70,7 +63,7 @@ jobs:
|
|||
|
||||
- ${{ 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'), eq(parameters.vmrBranch, 'main-ub'), startsWith(parameters.vmrBranch, 'release/')) }}:
|
||||
- ${{ if or(eq(parameters.vmrBranch, 'main'), startsWith(parameters.vmrBranch, 'release/')) }}:
|
||||
- script: >
|
||||
./.dotnet/dotnet darc vmr push
|
||||
--vmr '$(vmrPath)'
|
||||
|
|
|
@ -28,6 +28,39 @@ parameters:
|
|||
type: boolean
|
||||
default: false
|
||||
|
||||
# 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
|
||||
|
||||
- name: pool_Windows
|
||||
type: object
|
||||
default:
|
||||
name: $(defaultPoolName)
|
||||
image: $(poolImage_Windows)
|
||||
demands: ImageOverride -equals $(poolImage_Windows)
|
||||
os: windows
|
||||
|
||||
- name: pool_LinuxArm64
|
||||
type: object
|
||||
default:
|
||||
name: $(poolName_LinuxArm64)
|
||||
image: $(poolImage_LinuxArm64)
|
||||
demands: ImageOverride -equals $(poolImage_Linux)
|
||||
hostArchitecture: Arm64
|
||||
os: linux
|
||||
|
||||
- name: pool_Mac
|
||||
type: object
|
||||
default:
|
||||
name: Azure Pipelines
|
||||
vmImage: $(poolImage_Mac)
|
||||
os: macOS
|
||||
|
||||
#### SOURCE-ONLY BUILD ####
|
||||
stages:
|
||||
- ${{ if parameters.isSourceOnlyBuild }}:
|
||||
|
@ -35,9 +68,10 @@ stages:
|
|||
displayName: VMR Source-Only Build
|
||||
dependsOn: []
|
||||
variables:
|
||||
- template: ../variables/vmr-stage.yml
|
||||
- template: ../variables/vmr-build.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
|
||||
jobs:
|
||||
|
||||
### Jobs for ultralite builds ###
|
||||
|
@ -48,9 +82,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -71,9 +103,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -93,9 +123,7 @@ stages:
|
|||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
artifactsRid: alpine.3.19-x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.alpine319Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -116,9 +144,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.alpine319Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -136,9 +162,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: true # ✅
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -157,9 +181,7 @@ stages:
|
|||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
artifactsRid: centos.8-x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -178,9 +200,7 @@ stages:
|
|||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
artifactsRid: centos.8-x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -198,9 +218,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream8Container }}
|
||||
buildFromArchive: true # ✅
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -218,9 +236,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.centOSStream9Container }}
|
||||
buildFromArchive: true # ✅
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -238,9 +254,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.fedora39Container }}
|
||||
buildFromArchive: true # ✅
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -258,9 +272,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.ubuntu2204Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -278,7 +290,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool: ${{ variables.defaultPoolNameLinuxArm64 }}
|
||||
pool: ${{ parameters.pool_LinuxArm64 }}
|
||||
container: ${{ variables.ubuntu2204ArmContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -296,9 +308,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.fedora39Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
buildSourceOnly: true # ✅
|
||||
|
@ -316,7 +326,7 @@ stages:
|
|||
displayName: VMR Vertical Build
|
||||
dependsOn: []
|
||||
variables:
|
||||
- template: ../variables/vmr-stage.yml
|
||||
- template: ../variables/vmr-build.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ parameters.vmrBranch }}
|
||||
jobs:
|
||||
|
@ -327,9 +337,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.ubuntu2204Container }}
|
||||
targetOS: linux
|
||||
targetArchitecture: x64
|
||||
|
@ -340,9 +348,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
targetOS: windows
|
||||
targetArchitecture: x64
|
||||
|
||||
|
@ -352,9 +358,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
targetOS: android
|
||||
targetArchitecture: arm64
|
||||
|
@ -365,9 +369,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: wasm
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.browserCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: browser
|
||||
|
@ -379,8 +381,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: iossimulator
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -393,9 +394,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
targetOS: android
|
||||
targetArchitecture: arm
|
||||
|
@ -406,9 +405,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
targetOS: android
|
||||
targetArchitecture: x64
|
||||
|
@ -419,9 +416,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x86
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
targetOS: android
|
||||
targetArchitecture: x86
|
||||
|
@ -432,9 +427,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: wasm
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.browserCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: browser
|
||||
|
@ -447,9 +440,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: linux-bionic
|
||||
|
@ -461,9 +452,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: linux-bionic
|
||||
|
@ -476,9 +465,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: linux-bionic
|
||||
|
@ -490,9 +477,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: linux-bionic
|
||||
|
@ -505,8 +490,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: ios
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -516,8 +500,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: ios
|
||||
targetArchitecture: arm64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -528,8 +511,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: iossimulator
|
||||
targetArchitecture: arm64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -540,8 +522,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: iossimulator
|
||||
targetArchitecture: x64
|
||||
|
||||
|
@ -551,8 +532,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: iossimulator
|
||||
targetArchitecture: x64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -563,8 +543,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: maccatalyst
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -574,8 +553,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: maccatalyst
|
||||
targetArchitecture: arm64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -586,8 +564,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: maccatalyst
|
||||
targetArchitecture: x64
|
||||
|
||||
|
@ -597,8 +574,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: maccatalyst
|
||||
targetArchitecture: x64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -609,8 +585,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvos
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -620,8 +595,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvos
|
||||
targetArchitecture: arm64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -632,8 +606,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvossimulator
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -643,8 +616,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvossimulator
|
||||
targetArchitecture: arm64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -655,8 +627,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvossimulator
|
||||
targetArchitecture: x64
|
||||
|
||||
|
@ -666,8 +637,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: tvossimulator
|
||||
targetArchitecture: x64
|
||||
extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
|
||||
|
@ -678,9 +648,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: wasm
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.wasiCrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: wasi
|
||||
|
@ -692,8 +660,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: osx
|
||||
targetArchitecture: x64
|
||||
|
||||
|
@ -703,8 +670,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
useMonoRuntime: true
|
||||
targetOS: osx
|
||||
targetArchitecture: x64
|
||||
|
@ -715,9 +681,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.marinerX64CrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
targetOS: linux
|
||||
|
@ -729,9 +693,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
pool: ${{ parameters.pool_Linux }}
|
||||
container: ${{ variables.marinerX64CrossContainer }}
|
||||
crossRootFs: '/crossrootfs/x64'
|
||||
useMonoRuntime: true
|
||||
|
@ -746,9 +708,7 @@ stages:
|
|||
# isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
# vmrBranch: ${{ variables.VmrBranch }}
|
||||
# architecture: arm64
|
||||
# pool:
|
||||
# name: ${{ variables.defaultPoolName }}
|
||||
# demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
# pool: ${{ parameters.pool_Linux }}
|
||||
# container: ${{ variables.marinerArm64CrossContainer }}
|
||||
# crossRootFs: '/crossrootfs/arm64'
|
||||
# targetOS: linux
|
||||
|
@ -760,8 +720,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
targetOS: osx
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -771,8 +730,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ variables.defaultPoolNameMac }}
|
||||
pool: ${{ parameters.pool_Mac }}
|
||||
useMonoRuntime: true
|
||||
targetOS: osx
|
||||
targetArchitecture: arm64
|
||||
|
@ -783,9 +741,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
targetOS: windows
|
||||
targetArchitecture: arm64
|
||||
|
||||
|
@ -795,9 +751,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
useMonoRuntime: true
|
||||
targetOS: windows
|
||||
targetArchitecture: x64
|
||||
|
@ -808,9 +762,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x86
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
targetOS: windows
|
||||
targetArchitecture: x86
|
||||
|
||||
|
@ -820,9 +772,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x86
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
useMonoRuntime: true
|
||||
targetOS: windows
|
||||
targetArchitecture: x86
|
||||
|
@ -833,9 +783,7 @@ stages:
|
|||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsWindows }}
|
||||
pool: ${{ parameters.pool_Windows }}
|
||||
targetOS: windows
|
||||
targetArchitecture: x64
|
||||
extraProperties: /p:PgoInstrument=true
|
||||
|
|
|
@ -88,7 +88,8 @@ steps:
|
|||
condition: eq(variables['Agent.OS'], 'Windows_NT')
|
||||
workingDirectory: $(Agent.BuildDirectory)/installer
|
||||
|
||||
- publish: $(Agent.TempDirectory)
|
||||
artifact: $(System.JobDisplayName)_FailedPatches
|
||||
displayName: Upload failed patches
|
||||
condition: failed()
|
||||
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- publish: $(Agent.TempDirectory)
|
||||
artifact: $(System.JobDisplayName)_FailedPatches
|
||||
displayName: Upload failed patches
|
||||
condition: failed()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
parameters:
|
||||
- name: vmrBranch
|
||||
- name: vmrBranch
|
||||
type: string
|
||||
|
||||
variables:
|
||||
|
@ -36,26 +36,30 @@ variables:
|
|||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- name: defaultPoolName
|
||||
value: NetCore-Public-XL
|
||||
- name: defaultPoolNameLinuxArm64
|
||||
- name: poolImage_Linux
|
||||
value: 1es-ubuntu-2004-open
|
||||
- name: poolImage_LinuxArm64
|
||||
value: Mariner-2-Docker-ARM64
|
||||
- name: poolName_LinuxArm64
|
||||
value: Docker-Linux-Arm-Public
|
||||
- name: defaultPoolNameMac
|
||||
- name: poolImage_Mac
|
||||
value: macos-12
|
||||
- name: defaultPoolDemandsLinux
|
||||
value: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open
|
||||
- name: defaultPoolDemandsWindows
|
||||
value: ImageOverride -equals windows.vs2022.amd64.open
|
||||
- ${{ elseif eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: poolImage_Windows
|
||||
value: windows.vs2022preview.amd64.open
|
||||
- ${{ else }}:
|
||||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- name: defaultPoolName
|
||||
value: NetCore1ESPool-Internal-XL
|
||||
- ${{ else }}:
|
||||
- name: defaultPoolName
|
||||
value: NetCore1ESPool-Svc-Internal
|
||||
- name: defaultPoolNameLinuxArm64
|
||||
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
|
||||
- name: defaultPoolNameMac
|
||||
- name: poolImage_Mac
|
||||
value: macos-13-arm64
|
||||
- name: defaultPoolDemandsLinux
|
||||
value: ImageOverride -equals Build.Ubuntu.2204.Amd64
|
||||
- name: defaultPoolDemandsWindows
|
||||
value: ImageOverride -equals windows.vs2022.amd64
|
||||
- name: poolImage_Windows
|
||||
value: windows.vs2022preview.amd64
|
|
@ -1,9 +1,11 @@
|
|||
# This yml is used by these pipelines and triggers:
|
||||
# This YAML is used by these PR pipelines:
|
||||
#
|
||||
# - installer-source-build (public)
|
||||
# - PR: release/* and main, ultralite build
|
||||
# - installer-unified-build (public)
|
||||
# - PR: main, lite build
|
||||
# - installer-source-build
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=233
|
||||
# - installer-unified-build
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=277
|
||||
# - installer-unified-build-full
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=279
|
||||
|
||||
trigger: none
|
||||
pr:
|
||||
|
@ -28,6 +30,8 @@ parameters:
|
|||
default: false
|
||||
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml@self
|
||||
|
||||
- ${{ if ne(parameters.vmrBranch, ' ') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
|
@ -68,8 +68,11 @@ jobs:
|
|||
matrix: $[ dependencies.Setup.outputs['GetMatrix.matrix'] ]
|
||||
steps:
|
||||
|
||||
- script: $(Build.SourcesDirectory)/prep.sh --no-artifacts --no-bootstrap --no-prebuilts
|
||||
displayName: 'Install .NET SDK'
|
||||
- script: |
|
||||
source ./eng/common/tools.sh
|
||||
InitializeDotNetCli true
|
||||
displayName: Install .NET SDK
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
|
||||
- task: PipAuthenticate@1
|
||||
displayName: 'Pip Authenticate'
|
||||
|
@ -106,6 +109,8 @@ 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} \;
|
||||
echo "Updated:"
|
||||
find test/ -type f -name "UpdatedLicenseExclusions*.txt"
|
||||
find test/ -type f -name "UpdatedLicenseExclusions*.txt" -exec cp {} --parents -t ${targetFolder} \;
|
||||
find test/ -type f -name "Updated*.json"
|
||||
find test/ -type f -name "Updated*.json" -exec cp {} --parents -t ${targetFolder} \;
|
||||
echo "Results:"
|
|
@ -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,13 +19,20 @@ 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, ' ', '') }}
|
||||
|
@ -33,13 +40,27 @@ variables:
|
|||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
jobs:
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
extends:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
||||
parameters:
|
||||
jobName: Synchronize_VMR
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
jobName: Synchronize_VMR_uncloacked
|
||||
vmrBranch: ${{ variables.VmrBranch }}-ub
|
||||
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 }}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"tools": {
|
||||
"dotnet": "9.0.100-alpha.1.23615.4",
|
||||
"dotnet": "9.0.100-preview.1.24101.2",
|
||||
"runtimes": {
|
||||
"dotnet": [
|
||||
"$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)"
|
||||
|
@ -11,8 +11,8 @@
|
|||
"cmake": "latest"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Microsoft.Build.NoTargets": "3.7.0",
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24114.1",
|
||||
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24114.1"
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24201.3",
|
||||
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24201.3",
|
||||
"Microsoft.Build.NoTargets": "3.7.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details.
|
||||
|
||||
pipelines:
|
||||
1330:
|
||||
retail:
|
||||
source:
|
||||
credscan:
|
||||
lastModifiedDate: 2024-03-25
|
||||
eslint:
|
||||
lastModifiedDate: 2024-03-25
|
||||
psscriptanalyzer:
|
||||
lastModifiedDate: 2024-03-25
|
||||
armory:
|
||||
lastModifiedDate: 2024-03-25
|
||||
binary:
|
||||
credscan:
|
||||
lastModifiedDate: 2024-03-25
|
||||
binskim:
|
||||
lastModifiedDate: 2024-03-25
|
||||
spotbugs:
|
||||
lastModifiedDate: 2024-03-25
|
1477
src/SourceBuild/content/.config/guardian/.gdnbaselines
Normal file
1477
src/SourceBuild/content/.config/guardian/.gdnbaselines
Normal file
File diff suppressed because it is too large
Load diff
|
@ -24,7 +24,7 @@ or
|
|||
|
||||
```bash
|
||||
# Building from source only
|
||||
./prep.sh && ./build.sh -sb
|
||||
./prep-source-build.sh && ./build.sh -sb
|
||||
```
|
||||
|
||||
> Please note that, at this time, the build modifies some of the checked-in sources so it might
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
source="${BASH_SOURCE[0]}"
|
||||
script_root="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
"$script_root"/../../prep.sh
|
||||
"$script_root"/../../prep-source-build.sh
|
||||
|
||||
cp "$script_root/../synchronize-vmr.sh" "/workspaces/"
|
||||
"$script_root"/../../build.sh --online --clean-while-building || exit 0
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</BuildOS>
|
||||
<HostOS Condition="'$(HostOS)' == ''">$(BuildOS)</HostOS>
|
||||
<TargetOS Condition="'$(TargetOS)' == ''">$(BuildOS)</TargetOS>
|
||||
<HostOS Condition="'$(HostOS)' == ''">$(TargetOS)</HostOS>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- This is a list of cases where we aren't producing a whole SDK, just a runtime. This list should be kept in sync with https://github.com/dotnet/runtime/blob/main/eng/SourceBuild.props#L26 -->
|
||||
|
@ -34,7 +34,7 @@
|
|||
<RootRepo Condition="'$(ShortStack)' == 'true'">runtime</RootRepo>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- See https://github.com/dotnet/arcade/blob/main/Documentation/UnifiedBuild/Unified-Build-Controls.md#output-controls for
|
||||
<!-- See https://github.com/dotnet/arcade/blob/main/Documentation/UnifiedBuild/Unified-Build-Controls.md#output-controls for
|
||||
control set definition. -->
|
||||
<PropertyGroup Label="CalculateArch">
|
||||
<!-- Build architecture is what we are building on. -->
|
||||
|
@ -50,14 +50,15 @@
|
|||
<PropertyGroup Label="CalculateRID">
|
||||
<!-- Use current machine distro RID if set. Otherwise, fall back to RuntimeInformation.RuntimeIdentifier -->
|
||||
<BuildRid>$(__DistroRid)</BuildRid>
|
||||
<BuildRid Condition="'$(BuildRid)' == ''">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</BuildRid>
|
||||
<BuildRid Condition="'$(BuildRid)' == '' and '$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</BuildRid>
|
||||
<BuildRid Condition="'$(BuildRid)' == '' and '$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</BuildRid>
|
||||
|
||||
<HostRid Condition="'$(HostRid)' == ''">$(BuildRid)</HostRid>
|
||||
<TargetRid Condition="'$(TargetRid)' == ''">$(BuildRid.Substring(0, $(BuildRid.LastIndexOf('-'))))-$(TargetArchitecture)</TargetRid>
|
||||
<HostRid Condition="'$(HostRid)' == ''">$(TargetRid)</HostRid>
|
||||
|
||||
<!-- Source-only builds are non portable, except for cross-builds.
|
||||
Source-only cross-builds default to the portable configuration so the resulting SDK works on a wider range of distros. -->
|
||||
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true' and '$(HostArchitecture)' == '$(TargetArchitecture)'">false</PortableBuild>
|
||||
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true' and '$(BuildArchitecture)' == '$(TargetArchitecture)'">false</PortableBuild>
|
||||
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
|
||||
|
||||
<PortableRid Condition="'$(__PortableTargetOS)' != ''">$(__PortableTargetOS)-$(TargetArchitecture)</PortableRid>
|
||||
|
@ -136,6 +137,8 @@
|
|||
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
|
||||
<!-- By default, the VMR builds with online sources when not building source-only. -->
|
||||
<DotNetBuildWithOnlineFeeds Condition="'$(DotNetBuildWithOnlineFeeds)' == '' and '$(DotNetBuildSourceOnly)' != 'true'">true</DotNetBuildWithOnlineFeeds>
|
||||
|
||||
<DisableArcadeExcludeFromBuildSupport>true</DisableArcadeExcludeFromBuildSupport>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
@ -146,7 +149,6 @@
|
|||
<EnableDefaultItems Condition="'$(MSBuildProjectExtension)' == '.proj'">false</EnableDefaultItems>
|
||||
|
||||
<LogVerbosity Condition="'$(LogVerbosity)'==''">minimal</LogVerbosity>
|
||||
<BuildInParallel Condition="'$(BuildInParallel)'==''">false</BuildInParallel>
|
||||
|
||||
<ShellExtension Condition="'$(BuildOS)' == 'windows'">.cmd</ShellExtension>
|
||||
<ShellExtension Condition="'$(BuildOS)' != 'windows'">.sh</ShellExtension>
|
||||
|
@ -174,7 +176,9 @@
|
|||
|
||||
<VSMSBuildSdkResolversDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'toolset', 'VSSdkResolvers'))</VSMSBuildSdkResolversDir>
|
||||
<IntermediateSymbolsRootDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'Symbols'))</IntermediateSymbolsRootDir>
|
||||
<AssetManifestsIntermediateDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'AssetManifests'))</AssetManifestsIntermediateDir>
|
||||
<ArtifactsAssetsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'assets', '$(Configuration)'))</ArtifactsAssetsDir>
|
||||
<ArtifactsAssetsSymbolsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsAssetsDir)', 'Symbols'))</ArtifactsAssetsSymbolsDir>
|
||||
|
||||
<PrebuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt'))</PrebuiltPackagesPath>
|
||||
<PreviouslyRestoredPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored'))</PreviouslyRestoredPackagesPath>
|
||||
|
@ -201,8 +205,8 @@
|
|||
|
||||
<!-- Build task assembly paths -->
|
||||
<PropertyGroup>
|
||||
<XPlatSourceBuildTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.XPlat', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.XPlat.dll'))</XPlatSourceBuildTasksAssembly>
|
||||
<LeakDetectionTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll'))</LeakDetectionTasksAssembly>
|
||||
<MicrosoftDotNetUnifiedBuildTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.UnifiedBuild.Tasks', '$(Configuration)', 'Microsoft.DotNet.UnifiedBuild.Tasks.dll'))</MicrosoftDotNetUnifiedBuildTasksAssembly>
|
||||
<MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll'))</MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(EnablePoison)' == 'true'">
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<SdkFilenamePrefix>dotnet-sdk-</SdkFilenamePrefix>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(ArtifactsAssetsDir)$(SdkFilenamePrefix)*$(ArchiveExtension)" />
|
||||
<SdkTarballItem Include="$(ArtifactsAssetsDir)Sdk/**/$(SdkFilenamePrefix)*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
|
@ -19,6 +19,7 @@
|
|||
-->
|
||||
<PropertyGroup>
|
||||
<SdkFilename>%(SdkTarballItem.Filename)%(SdkTarballItem.Extension)</SdkFilename>
|
||||
<SdkTarballPath>%(SdkTarballItem.Identity)</SdkTarballPath>
|
||||
<SourceBuiltSdkVersion>$(SdkFilename.Replace('$(SdkFilenamePrefix)','').Replace('-$(TargetRid)$(ArchiveExtension)',''))</SourceBuiltSdkVersion>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
|
21
src/SourceBuild/content/Directory.Packages.props
Normal file
21
src/SourceBuild/content/Directory.Packages.props
Normal file
|
@ -0,0 +1,21 @@
|
|||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
|
||||
<!-- Using multiple feeds isn't supported by Maestro: https://github.com/dotnet/arcade/issues/14155. -->
|
||||
<NoWarn>$(NoWarn);NU1507</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Command-line-api dependencies -->
|
||||
<PackageVersion Include="System.CommandLine" Version="$(SystemCommandLineVersion)" />
|
||||
<!-- MSBuild dependencies -->
|
||||
<PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<!-- Runtime dependencies -->
|
||||
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionsFileSystemGlobbingVersion)" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsoleVersion)" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -103,7 +103,7 @@ In case you don't want to / cannot prepare your environment per the requirements
|
|||
```bash
|
||||
# Prep the source to build on your distro.
|
||||
# This downloads a .NET SDK and a number of .NET packages needed to build .NET from source.
|
||||
./prep.sh
|
||||
./prep-source-build.sh
|
||||
|
||||
# Build the .NET SDK
|
||||
./build.sh -sb --clean-while-building
|
||||
|
@ -149,7 +149,7 @@ git clone https://github.com/dotnet/dotnet .
|
|||
./build.sh --clean-while-building
|
||||
|
||||
# - Building from source
|
||||
./prep.sh && ./build.sh -sb --clean-while-building
|
||||
./prep-source-build.sh && ./build.sh -sb --clean-while-building
|
||||
|
||||
mkdir -p $HOME/.dotnet
|
||||
tar -zxf artifacts/assets/Release/dotnet-sdk-9.0.100-centos.8-x64.tar.gz -C $HOME/.dotnet
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<Target Name="Build">
|
||||
<PropertyGroup>
|
||||
<BuildModeInfoText Condition="'$(DotNetBuildSourceOnly)' == 'true'">source-build</BuildModeInfoText>
|
||||
<BuildModeInfoText Condition="'$(DotNetBuildSourceOnly)' != 'true'">non-source-build</BuildModeInfoText>
|
||||
</PropertyGroup>
|
||||
|
||||
<Message Text="Build Mode: $(BuildModeInfoText)" Importance="high" />
|
||||
<Message Text="Build Environment: $(TargetArchitecture) $(Configuration) $(TargetOS) $(TargetRid)" Importance="high" />
|
||||
|
||||
<MSBuild Projects="$(ToolsDir)init-build.proj;
|
||||
|
@ -19,6 +25,31 @@
|
|||
StopOnFirstFailure="true" />
|
||||
</Target>
|
||||
|
||||
<!-- Create a merge manifest from the individual repository manifest files. -->
|
||||
<UsingTask TaskName="Microsoft.DotNet.UnifiedBuild.Tasks.MergeAssetManifests" AssemblyFile="$(MicrosoftDotNetUnifiedBuildTasksAssembly)" />
|
||||
<Target Name="MergeAssetManifests" AfterTargets="Build">
|
||||
<PropertyGroup>
|
||||
<MergedAssetManifestOutputPath>$(ArtifactsDir)VerticalManifest.xml</MergedAssetManifestOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RepoAssetManifest Include="$(AssetManifestsIntermediateDir)\**\*.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- It's OK for the VmrBuildNumber to be empty -->
|
||||
<Microsoft.DotNet.UnifiedBuild.Tasks.MergeAssetManifests
|
||||
AssetManifest="@(RepoAssetManifest)"
|
||||
MergedAssetManifestOutputPath="$(MergedAssetManifestOutputPath)"
|
||||
VmrBuildNumber="$(BUILD_BUILDNUMBER)" />
|
||||
</Target>
|
||||
|
||||
<Import Project="$(RepositoryEngineeringDir)build.sourcebuild.targets" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<!-- Intentionally below the import to appear at the end. -->
|
||||
<Target Name="LogBuildOutputFolders"
|
||||
AfterTargets="Build">
|
||||
<Message Importance="high" Text="Shipping packages are located in '$(ArtifactsShippingPackagesDir)'." />
|
||||
<Message Importance="high" Text="Shipping assets are located in '$(ArtifactsAssetsDir)'." />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -28,16 +28,17 @@ usage()
|
|||
echo " --release-manifest <FILE> A JSON file, an alternative source of Source Link metadata"
|
||||
echo " --source-repository <URL> Source Link repository URL, required when building from tarball"
|
||||
echo " --source-version <SHA> Source Link revision, required when building from tarball"
|
||||
echo " --use-mono-runtime Output uses the mono runtime"
|
||||
echo " --with-packages <DIR> Use the specified directory of previously-built packages"
|
||||
echo " --with-sdk <DIR> Use the SDK in the specified directory for bootstrapping"
|
||||
echo ""
|
||||
|
||||
echo "Advanced settings:"
|
||||
echo " --build-tests Build repository tests. May not be supported with --source-only"
|
||||
echo " --ci Set when running on CI server"
|
||||
echo " --clean-while-building Cleans each repo after building (reduces disk space usage, short: -cwb)"
|
||||
echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
|
||||
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||
echo " --use-mono-runtime Output uses the mono runtime"
|
||||
echo ""
|
||||
echo "Command line arguments not listed above are passed thru to msbuild."
|
||||
echo "Arguments can also be passed in with a single hyphen."
|
||||
|
@ -139,9 +140,6 @@ while [[ $# > 0 ]]; do
|
|||
sourceVersion="$2"
|
||||
shift
|
||||
;;
|
||||
-use-mono-runtime)
|
||||
properties="$properties /p:SourceBuildUseMonoRuntime=true"
|
||||
;;
|
||||
-with-packages)
|
||||
CUSTOM_PACKAGES_DIR="$(cd -P "$2" && pwd)"
|
||||
if [ ! -d "$CUSTOM_PACKAGES_DIR" ]; then
|
||||
|
@ -164,6 +162,9 @@ while [[ $# > 0 ]]; do
|
|||
;;
|
||||
|
||||
# Advanced settings
|
||||
-build-tests)
|
||||
properties="$properties /p:DotNetBuildTests=true"
|
||||
;;
|
||||
-ci)
|
||||
ci=true
|
||||
;;
|
||||
|
@ -176,6 +177,9 @@ while [[ $# > 0 ]]; do
|
|||
-preparemachine)
|
||||
prepare_machine=true
|
||||
;;
|
||||
-use-mono-runtime)
|
||||
properties="$properties /p:SourceBuildUseMonoRuntime=true"
|
||||
;;
|
||||
|
||||
*)
|
||||
properties="$properties $1"
|
||||
|
@ -305,7 +309,7 @@ if [[ "$sourceOnly" == "true" ]]; then
|
|||
fi
|
||||
|
||||
if [ ! -d "$scriptroot/.git" ]; then
|
||||
echo "ERROR: $scriptroot is not a git repository. Please run prep.sh add initialize Source Link metadata."
|
||||
echo "ERROR: $scriptroot is not a git repository."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<ProductDependencies>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24102.4">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24177.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>2fb543a45580400a559b5ae41c96a815ea14dac5</Sha>
|
||||
<Sha>689fb2d1b620a9df28c3384d9b208e3654a0f928</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<PropertyGroup>
|
||||
<VersionPrefix>0.1.0</VersionPrefix>
|
||||
<PreReleaseVersionLabel>alpha.1</PreReleaseVersionLabel>
|
||||
<UseVSTestRunner>true</UseVSTestRunner>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
|
@ -22,9 +23,15 @@
|
|||
of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts
|
||||
are not necessary, and this property is removed from the file.
|
||||
-->
|
||||
<PrivateSourceBuiltSdkVersion>9.0.100-preview.2.24104.1</PrivateSourceBuiltSdkVersion>
|
||||
<PrivateSourceBuiltArtifactsVersion>9.0.100-preview.2.24104.1</PrivateSourceBuiltArtifactsVersion>
|
||||
<PrivateSourceBuiltSdkVersion>9.0.100-preview.4.24179.1</PrivateSourceBuiltSdkVersion>
|
||||
<PrivateSourceBuiltArtifactsVersion>9.0.100-preview.4.24179.1</PrivateSourceBuiltArtifactsVersion>
|
||||
<!-- msbuild -->
|
||||
<MicrosoftBuildVersion>15.7.179</MicrosoftBuildVersion>
|
||||
<MicrosoftBuildVersion>17.8.3</MicrosoftBuildVersion>
|
||||
<!-- runtime -->
|
||||
<MicrosoftExtensionsFileSystemGlobbingVersion>9.0.0-preview.2.24128.5</MicrosoftExtensionsFileSystemGlobbingVersion>
|
||||
<MicrosoftExtensionsLoggingConsoleVersion>9.0.0-preview.2.24128.5</MicrosoftExtensionsLoggingConsoleVersion>
|
||||
<MicrosoftExtensionsLoggingVersion>9.0.0-preview.2.24128.5</MicrosoftExtensionsLoggingVersion>
|
||||
<!-- command-line-api -->
|
||||
<SystemCommandLineVersion>2.0.0-beta4.24126.1</SystemCommandLineVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
59
src/SourceBuild/content/eng/allowed-sb-binaries.txt
Normal file
59
src/SourceBuild/content/eng/allowed-sb-binaries.txt
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Contains the binaries that are allowed for source build
|
||||
|
||||
# This file is used by the Binary Tool to remove binaries from the VMR
|
||||
# If importing a file, include the relative path to the file
|
||||
|
||||
**/*.bmp
|
||||
**/*.doc
|
||||
**/*.docx
|
||||
**/*.gif
|
||||
**/*.ico
|
||||
**/*.jpg
|
||||
**/*.JPG
|
||||
**/*.pdf
|
||||
**/*.png
|
||||
**/*.PNG
|
||||
**/*.rtf
|
||||
**/*.snk
|
||||
**/*.vsd
|
||||
**/*.vsdx
|
||||
**/*.xlsx
|
||||
**/*.ttf
|
||||
**/*.cur
|
||||
**/*.icm
|
||||
**/*.reg
|
||||
|
||||
# aspnetcore
|
||||
src/aspnetcore/src/**/samples/**/*.eot
|
||||
src/aspnetcore/src/**/samples/**/*.pfx
|
||||
src/aspnetcore/src/**/samples/**/*.woff*
|
||||
src/aspnetcore/src/**/Samples/**/*.woff*
|
||||
src/aspnetcore/src/Components/benchmarkapps/BlazingPizza.Server/wwwroot/css/font/quicksand-v8-latin-*.woff*
|
||||
src/aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js # JavaScript files with a null bytes
|
||||
src/aspnetcore/src/ProjectTemplates/Web.ProjectTemplates/**/app.db
|
||||
src/aspnetcore/src/submodules/Node-Externals/cache/**/* # https://github.com/dotnet/source-build/issues/4161
|
||||
|
||||
# fsharp
|
||||
src/fsharp/src/fsi/fsi.res # Icon
|
||||
|
||||
# razor
|
||||
src/razor/**/SampleApp/**/fonts/**/*.eot
|
||||
src/razor/**/SampleApp/**/fonts/**/*.otf
|
||||
src/razor/**/SampleApp/**/fonts/**/*.woff
|
||||
|
||||
# roslyn
|
||||
src/roslyn/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/Resources/WindowsProxy.winmd
|
||||
|
||||
# runtime
|
||||
src/runtime/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.res # Icon
|
||||
src/runtime/src/libraries/System.Speech/src/**/*.upsmap # https://github.com/dotnet/runtime/issues/81692
|
||||
src/runtime/src/libraries/System.Text.Encoding.CodePages/src/Data/codepages.nlp # https://github.com/dotnet/runtime/issues/81693
|
||||
src/runtime/src/native/external/brotli/common/dictionary.bin.br
|
||||
|
||||
# source-build-externals
|
||||
src/source-build-externals/src/humanizer/src/Humanizer.Tests**/*.pfx
|
||||
src/source-build-externals/src/newtonsoft-json/Src/Newtonsoft.Json.Tests/SpaceShipV2.bson
|
||||
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/build/strongNameBypass.reg # UTF16-LE text file
|
||||
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/build/strongNameBypass2.reg # UTF16-LE text file
|
||||
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/*.pfx
|
||||
src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/*.cer
|
143
src/SourceBuild/content/eng/allowed-vmr-binaries.txt
Normal file
143
src/SourceBuild/content/eng/allowed-vmr-binaries.txt
Normal file
|
@ -0,0 +1,143 @@
|
|||
# Contains the binaries that are allowed in the VMR
|
||||
|
||||
# This file is used by the Binary Tool to detect new binaries that get added to the VMR
|
||||
|
||||
# Import the allowed souce-build binaries (a stricter set).
|
||||
import:allowed-sb-binaries.txt
|
||||
|
||||
**/testCert*.pfx
|
||||
**/TestCert*.pfx
|
||||
|
||||
# arcade
|
||||
src/arcade/src/Microsoft.DotNet.*.Tests/**/*
|
||||
src/arcade/src/Microsoft.DotNet.NuGetRepack/tests/Resources/*.nupkg
|
||||
src/arcade/src/Microsoft.DotNet.NuGetRepack/tests/Resources/.signature.p7s
|
||||
|
||||
# aspnetcore
|
||||
src/aspnetcore/src/submodules/MessagePack-CSharp/**/*.dll
|
||||
src/aspnetcore/src/SignalR/clients/java/signalr/gradle/wrapper/gradle-wrapper.jar
|
||||
src/aspnetcore/src/Components/**/testassets/**/*.woff*
|
||||
src/aspnetcore/src/Security/Authentication/Negotiate/test/Negotiate.FunctionalTest/negotiateAuthCert.pfx
|
||||
src/aspnetcore/src/**/test/**/*.cer
|
||||
src/aspnetcore/src/Shared/TestCertificates/*.pfx
|
||||
src/aspnetcore/src/Shared/TestCertificates/*.crt
|
||||
|
||||
# cecil
|
||||
src/cecil/Test/Resources/assemblies/*.netmodule
|
||||
src/cecil/Test/Resources/assemblies/*.winmd
|
||||
src/cecil/Test/Resources/assemblies/*.exe
|
||||
src/cecil/Test/Resources/assemblies/*.dll
|
||||
src/cecil/Test/Resources/assemblies/*.pdb
|
||||
src/cecil/Test/Resources/assemblies/*.mdb
|
||||
src/cecil/rocks/Test/Resources/assemblies/*.dll
|
||||
src/cecil/symbols/**/Test/Resources/assemblies/*.exe
|
||||
src/cecil/symbols/**/Test/Resources/assemblies/*.pdb
|
||||
src/cecil/symbols/**/Test/Resources/assemblies/*.dll
|
||||
src/cecil/symbols/**/Test/Resources/assemblies/*.mdb
|
||||
|
||||
# fsharp
|
||||
src/fsharp/tests/**/*.resources
|
||||
src/fsharp/tests/**/*.dll
|
||||
src/fsharp/tests/**/*.exe
|
||||
src/fsharp/tests/fsharp/core/resources/chimes.wav
|
||||
|
||||
# msbuild
|
||||
src/msbuild/src/Tasks.UnitTests/TestResources/*.pfx
|
||||
src/msbuild/src/Tasks.UnitTests/AssemblyDependency/CacheFileSamples/Microsoft.VisualStudio.LanguageServices.Implementation.csprojAssemblyReference.cache
|
||||
|
||||
# nuget-client
|
||||
src/nuget-client/test/EndToEnd/Packages/**/*.nupkg
|
||||
src/nuget-client/test/EndToEnd/Packages/**/*.zip
|
||||
src/nuget-client/test/EndToEnd/Packages/**/*.dll
|
||||
src/nuget-client/test/NuGet.Clients.Tests/NuGet.CommandLine.Test/compiler/resources/*.nupkg
|
||||
src/nuget-client/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Resources/customMetadata.jpeg
|
||||
src/nuget-client/test/NuGet.Core.Tests/NuGet.Commands.Test/compiler/resources/EmptyCertificateStore.p7b
|
||||
src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/compiler/resources/*.dll
|
||||
src/nuget-client/test/NuGet.Core.FuncTests/NuGet.Packaging.FuncTest/compiler/resources/*.nupkg
|
||||
src/nuget-client/test/NuGet.Core.FuncTests/NuGet.Packaging.FuncTest/compiler/resources/*.zip
|
||||
src/nuget-client/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/compiler/resources/*.nupkg
|
||||
src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.crt
|
||||
src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/.signature.p7s
|
||||
src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.nupkg
|
||||
src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.zip
|
||||
|
||||
# razor
|
||||
src/razor/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/TestFiles/BlazorProject.zip
|
||||
src/razor/src/Razor/benchmarks/Microsoft.AspNetCore.Razor.Microbenchmarks/Resources/project.razor.bin
|
||||
|
||||
# roslyn
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.metadata
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.winmd
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.mod
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.netmodule
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.obj
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.dll
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.exe
|
||||
src/roslyn/src/Compilers/Test/Resources/Core/**/*.Dll
|
||||
src/roslyn/src/Workspaces/MSBuildTest/Resources/Dlls/*.dll
|
||||
src/roslyn/**/CodeAnalysisTest/**/*.res
|
||||
src/roslyn/**/CodeAnalysisTest/**/*.blah
|
||||
src/roslyn/**/CodeAnalysisTest/**/*.RES
|
||||
|
||||
# runtime
|
||||
src/runtime/src/mono/mono/eglib/test/*.txt
|
||||
src/runtime/src/mono/mono/tests/exiting/*.out
|
||||
src/runtime/src/**/tests/**/*.res
|
||||
src/runtime/src/**/tests/**/*.resources
|
||||
src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/gRPC/grpc-dotnet/testassets/Certs/InteropTests/server1.pfx
|
||||
src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/AOT_PROFILED/*.mibc
|
||||
src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/AOT_PROFILED/*.nettrace
|
||||
src/runtime/src/libraries/System.Runtime.Serialization.Xml/tests/Canonicalization/baselines/ReaderWriter_C14N_BaselineXML_Binary.xml
|
||||
src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/NetModule/*.mod
|
||||
src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/WinRT/Lib.winmd
|
||||
src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/Misc/CPPClassLibrary2.obj
|
||||
src/runtime/src/libraries/System.Console/tests/TestData/ncursesFormats/s/screen-256color
|
||||
src/runtime/src/libraries/System.Console/tests/TestData/ncursesFormats/x/xterm
|
||||
src/runtime/src/mono/wasm/testassets/**/*.dat
|
||||
src/runtime/src/mono/wasm/testassets/**/*.o
|
||||
src/runtime/src/libraries/**/tests/**/*.dll
|
||||
src/runtime/src/libraries/**/tests/**/*.exe
|
||||
src/runtime/src/libraries/**/tests/**/*.pdb
|
||||
|
||||
# sdk
|
||||
src/sdk/src/Assets/TestProjects/**/*.dat
|
||||
src/sdk/src/Assets/TestProjects/**/*.cache
|
||||
src/sdk/src/Assets/TestProjects/**/*.tlb
|
||||
src/sdk/src/Assets/TestPackages/dotnet-new/nupkg_templates/*
|
||||
src/sdk/test/Microsoft.DotNet.ShellShim.Tests/WpfBinaryTestAsssets/*.dll
|
||||
src/sdk/test/Microsoft.NET.Sdk.Publish.Tasks.Tests/Resources/*.zip
|
||||
|
||||
# source-build-externals
|
||||
src/source-build-externals/src/application-insights*/WEB/Src/WindowsServer/WindowsServer.Tests/**/*.dll
|
||||
|
||||
# symreader
|
||||
src/symreader/src/PdbTestResources/Resources/*
|
||||
|
||||
# templating
|
||||
src/templating/test/Microsoft.TemplateEngine.TestTemplates/nupkg_templates/*.nupkg
|
||||
|
||||
# test-templates
|
||||
src/test-templates/Templates/**/*.nupkg
|
||||
|
||||
# vstest
|
||||
src/vstest/samples/Microsoft.TestPlatform.*/Adapter/Microsoft.VisualStudio.TestPlatform.*.dll
|
||||
src/vstest/temp/cpp/**/*.dll
|
||||
src/vstest/test/Microsoft.TestPlatform.CoreUtilities.UnitTests/TestAssets/*.exe
|
||||
src/vstest/test/Microsoft.TestPlatform.CoreUtilities.UnitTests/TestAssets/dotnetMac*
|
||||
src/vstest/test/Microsoft.TestPlatform.Utilities.UnitTests/TestFiles/fullcovered.coverage
|
||||
src/vstest/test/TestAssets/LegacySettingsUnitTestProject/DependencyAssembly/DependencyAssemblyForTest.dll
|
||||
|
||||
# winforms
|
||||
src/winforms/src/System.Windows.Forms/tests/IntegrationTests/MauiTests/lib/*.dll
|
||||
src/winforms/src/System.Windows.Forms/tests/IntegrationTests/WinformsControlsTest/Resources/media.mpg
|
||||
src/winforms/src/System.Windows.Forms/tests/UnitTests/bitmaps/milkmateya01.emf
|
||||
src/winforms/src/System.Windows.Forms/tests/UnitTests/TestResources/VB6/SimpleControl.vb6
|
||||
src/winforms/src/System.Windows.Forms*/**/*.wmf
|
||||
src/winforms/src/System.Windows.Forms.Design/src/Resources/colordlg.data
|
||||
|
||||
# wpf
|
||||
src/wpf/src/Microsoft.DotNet.Wpf/src/ReachFramework/Resources/generated/*.resources
|
||||
src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation/Hyphen_en.lex
|
||||
src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation/Hyphen_en.hdict
|
||||
src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.BIN
|
||||
src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.bin
|
|
@ -10,6 +10,7 @@ Param(
|
|||
[switch][Alias('h')]$help,
|
||||
|
||||
# Advanced settings
|
||||
[switch]$buildTests,
|
||||
[switch]$ci,
|
||||
[switch][Alias('cwb')]$cleanWhileBuilding,
|
||||
[switch][Alias('nobl')]$excludeCIBinarylog,
|
||||
|
@ -30,6 +31,7 @@ function Get-Usage() {
|
|||
Write-Host ""
|
||||
|
||||
Write-Host "Advanced settings:"
|
||||
Write-Host " -build-tests Build repository tests"
|
||||
Write-Host " -ci Set when running on CI server"
|
||||
Write-Host " -cleanWhileBuilding Cleans each repo after building (reduces disk space usage, short: -cwb)"
|
||||
Write-Host " -excludeCIBinarylog Don't output binary log (short: -nobl)"
|
||||
|
@ -53,12 +55,14 @@ function Build {
|
|||
|
||||
$bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' }
|
||||
$cwb = if ($cleanWhileBuilding) { '/p:CleanWhileBuilding=true' } else { '' }
|
||||
$btst = if ($buildTests) { '/p:DotNetBuildTests=true' } else { '' }
|
||||
$buildProj = Join-Path $RepoRoot 'build.proj'
|
||||
|
||||
MSBuild $buildProj `
|
||||
$bl `
|
||||
/p:Configuration=$configuration `
|
||||
$cwb `
|
||||
$btst `
|
||||
@properties
|
||||
}
|
||||
|
||||
|
|
|
@ -31,24 +31,19 @@
|
|||
</Target>
|
||||
|
||||
<!-- After building, create the sdk symbols tarball. -->
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="CreateSdkSymbolsLayout" />
|
||||
<UsingTask TaskName="Microsoft.DotNet.UnifiedBuild.Tasks.CreateSdkSymbolsLayout" AssemblyFile="$(MicrosoftDotNetUnifiedBuildTasksAssembly)" />
|
||||
<Target Name="CreateSdkSymbolsTarball"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="RepackageSymbols">
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(ArtifactsAssetsDir)dotnet-sdk-*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<SdkSymbolsTarball>$(ArtifactsAssetsDir)dotnet-symbols-sdk-$(SourceBuiltSdkVersion)-$(TargetRid)$(ArchiveExtension)</SdkSymbolsTarball>
|
||||
|
||||
<IntermediateSdkSymbolsLayout>$(BaseIntermediateOutputPath)SdkSymbols</IntermediateSdkSymbolsLayout>
|
||||
<IntermediateSdkLayout>$(BaseIntermediateOutputPath)Sdk</IntermediateSdkLayout>
|
||||
<SdkTarball>%(SdkTarballItem.Identity)</SdkTarball>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(IntermediateSdkLayout)" />
|
||||
<Exec Command="tar -xzf $(SdkTarball) -C $(IntermediateSdkLayout)" />
|
||||
<Exec Command="tar -xzf $(SdkTarballPath) -C $(IntermediateSdkLayout)" />
|
||||
|
||||
<CreateSdkSymbolsLayout SdkLayoutPath="$(IntermediateSdkLayout)"
|
||||
AllSymbolsPath="$(IntermediateSymbolsRootDir)"
|
||||
|
@ -76,7 +71,7 @@
|
|||
Targets="ReportPrebuiltUsage" />
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="CheckForPoison" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<UsingTask TaskName="Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.CheckForPoison" AssemblyFile="$(MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly)" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<Target Name="ReportPoisonUsage"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(EnablePoison)' == 'true'"
|
||||
|
@ -108,7 +103,7 @@
|
|||
</Touch>
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageBurndownData" />
|
||||
<UsingTask TaskName="Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport.WriteUsageBurndownData" AssemblyFile="$(MicrosoftDotNetUnifiedBuildTasksAssembly)" />
|
||||
<Target Name="GeneratePrebuiltBurndownData"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)GeneratePrebuiltBurndownData.complete" >
|
||||
|
|
139
src/SourceBuild/content/eng/detect-binaries.sh
Executable file
139
src/SourceBuild/content/eng/detect-binaries.sh
Executable file
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
### Usage: $0
|
||||
###
|
||||
### Prepares and runs the binary tooling to detect binaries in the VMR. Default behavior is to report any binaries
|
||||
### not found in the allowed-binaries file. To remove binaries not specified in the allowed-binaries file, pass --clean.
|
||||
###
|
||||
### Options:
|
||||
### --clean Clean the VMR of binaries not in the specified allowed-binaries file.
|
||||
### --allowed-binaries-file Path to the file containing the list of binaries to be
|
||||
### ignored for either cleaning or validating.
|
||||
### Defaults to eng/allowed-vmr-binaries.txt.
|
||||
### --log-level <level> Set the log level for the binary tooling. Defaults to Debug.
|
||||
### --with-packages Use the specified directory as the packages source feed.
|
||||
### Defaults to online dotnet-public and dotnet-libraries feeds.
|
||||
### --with-sdk Use the specified directory as the dotnet SDK.
|
||||
### Defaults to .dotnet.
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
REPO_ROOT="$( cd -P "$( dirname "$0" )/../" && pwd )"
|
||||
BINARY_TOOL="$REPO_ROOT/eng/tools/BinaryToolKit"
|
||||
|
||||
function print_help () {
|
||||
sed -n '/^### /,/^$/p' "$source" | cut -b 5-
|
||||
}
|
||||
|
||||
defaultDotnetSdk="$REPO_ROOT/.dotnet"
|
||||
defaultAllowedBinariesFile="$REPO_ROOT/eng/allowed-vmr-binaries.txt"
|
||||
|
||||
# Set default values
|
||||
allowedBinariesFile=$defaultAllowedBinariesFile
|
||||
mode='validate'
|
||||
logLevel='Debug'
|
||||
propsDir=''
|
||||
packagesDir=''
|
||||
dotnetSdk=$defaultDotnetSdk
|
||||
|
||||
positional_args=()
|
||||
while :; do
|
||||
if [ $# -le 0 ]; then
|
||||
break
|
||||
fi
|
||||
lowerI="$(echo "$1" | awk '{print tolower($0)}')"
|
||||
case $lowerI in
|
||||
"-?"|-h|--help)
|
||||
print_help
|
||||
exit 0
|
||||
;;
|
||||
--clean)
|
||||
mode="clean"
|
||||
;;
|
||||
--allowed-binaries-file)
|
||||
allowedBinariesFile=$2
|
||||
shift
|
||||
;;
|
||||
--log-level)
|
||||
logLevel=$2
|
||||
shift
|
||||
;;
|
||||
--with-packages)
|
||||
packagesDir=$2
|
||||
if [ ! -d "$packagesDir" ]; then
|
||||
echo "ERROR: The specified packages directory does not exist."
|
||||
exit 1
|
||||
elif [ ! -f "$packagesDir/PackageVersions.props" ]; then
|
||||
echo "ERROR: The specified packages directory does not contain PackageVersions.props."
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
--with-sdk)
|
||||
dotnetSdk=$2
|
||||
if [ ! -d "$dotnetSdk" ]; then
|
||||
echo "Custom SDK directory '$dotnetSdk' does not exist"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -x "$dotnetSdk/dotnet" ]; then
|
||||
echo "Custom SDK '$dotnetSdk/dotnet' does not exist or is not executable"
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
positional_args+=("$1")
|
||||
;;
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
function ParseBinaryArgs
|
||||
{
|
||||
# Check allowed binaries file
|
||||
if [ ! -f "$allowedBinariesFile" ]; then
|
||||
echo "ERROR: The specified allowed-binaries file does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check dotnet sdk
|
||||
if [ "$dotnetSdk" == "$defaultDotnetSdk" ]; then
|
||||
if [ ! -d "$dotnetSdk" ]; then
|
||||
. "$REPO_ROOT/eng/common/tools.sh"
|
||||
InitializeDotNetCli true
|
||||
fi
|
||||
else if [ ! -x "$dotnetSdk/dotnet" ]; then
|
||||
echo "'$dotnetSdk/dotnet' does not exist or is not executable"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check the packages directory
|
||||
if [ -z "$packagesDir" ]; then
|
||||
# Use dotnet-public and dotnet-libraries feeds as the default packages source feeds
|
||||
export ARTIFACTS_PATH="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json"
|
||||
else
|
||||
packagesDir=$(realpath ${packagesDir})
|
||||
export ARTIFACTS_PATH=$packagesDir
|
||||
fi
|
||||
}
|
||||
|
||||
function RunBinaryTool
|
||||
{
|
||||
targetDir="$REPO_ROOT"
|
||||
outputDir="$REPO_ROOT/artifacts/log/binary-report"
|
||||
BinaryToolCommand=""$dotnetSdk/dotnet" run --project "$BINARY_TOOL" -c Release "$mode" "$targetDir" -o "$outputDir" -ab "$allowedBinariesFile" -l "$logLevel""
|
||||
|
||||
if [ -n "$packagesDir" ]; then
|
||||
BinaryToolCommand=""$BinaryToolCommand" -p CustomPackageVersionsProps="$packagesDir/PackageVersions.props""
|
||||
fi
|
||||
|
||||
# Run the Binary Tool
|
||||
eval "$BinaryToolCommand"
|
||||
}
|
||||
|
||||
ParseBinaryArgs
|
||||
RunBinaryTool
|
|
@ -2,25 +2,30 @@
|
|||
# NOTE: the triggers are defined in the Azure DevOps UI as they are too complex
|
||||
#
|
||||
# - dotnet-source-build (public)
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=240
|
||||
# - PR: ultralite build
|
||||
# - CI: release/* only, every batched commit, full build
|
||||
# - Schedule: main only, full build
|
||||
#
|
||||
# - dotnet-unified-build (public)
|
||||
# https://dev.azure.com/dnceng-public/public/_build?definitionId=278
|
||||
# - PR: lite build
|
||||
# - CI: release/* only, every batched commit, full build
|
||||
# - Schedule: main only, full build
|
||||
#
|
||||
# - dotnet-source-build (internal)
|
||||
# https://dev.azure.com/dnceng/internal/_build?definitionId=1219
|
||||
# - PR: ultralite build
|
||||
# - CI: release/* and internal/release/* only, every batched commit, full build
|
||||
# - Schedule: main only, full build
|
||||
#
|
||||
# - dotnet-source-build-lite (internal)
|
||||
# https://dev.azure.com/dnceng/internal/_build?definitionId=1299
|
||||
# - PR: release/* and main, lite build, on-demand trigger
|
||||
# - CI: main only, every batched commit, lite build
|
||||
#
|
||||
# - dotnet-unified-build (internal)
|
||||
# https://dev.azure.com/dnceng/internal/_build?definitionId=1330
|
||||
# - PR: lite build
|
||||
# - CI: release/*, internal/release/* and main, every batched commit, full build
|
||||
|
||||
|
@ -38,21 +43,42 @@ variables:
|
|||
- name: isPRTrigger
|
||||
value: ${{ eq(variables['Build.Reason'], 'PullRequest') }}
|
||||
|
||||
stages:
|
||||
- ${{ if and(ne(variables.isPRTrigger, 'true'), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml@self
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
|
||||
resources:
|
||||
repositories:
|
||||
- repository: 1ESPipelineTemplates
|
||||
type: git
|
||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||
ref: refs/tags/release
|
||||
|
||||
extends:
|
||||
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }}
|
||||
${{ if eq(variables.isScheduleTrigger, 'true') }}:
|
||||
scope: full
|
||||
${{ elseif eq(variables.isSourceOnlyBuildLite, 'true') }}:
|
||||
scope: lite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), eq(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: ultralite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), ne(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: lite
|
||||
${{ else }}:
|
||||
scope: full
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
baseline:
|
||||
baselineFile: $(Build.SourcesDirectory)\.config\guardian\.gdnbaselines
|
||||
|
||||
stages:
|
||||
- ${{ if and(ne(variables.isPRTrigger, 'true'), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
- template: /eng/pipelines/templates/stages/vmr-scan.yml@self
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml@self
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }}
|
||||
${{ if eq(variables.isScheduleTrigger, 'true') }}:
|
||||
scope: full
|
||||
${{ elseif eq(variables.isSourceOnlyBuildLite, 'true') }}:
|
||||
scope: lite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), eq(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: ultralite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), ne(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: lite
|
||||
${{ else }}:
|
||||
scope: full
|
||||
|
|
53
src/SourceBuild/content/eng/pipelines/pr.yml
Normal file
53
src/SourceBuild/content/eng/pipelines/pr.yml
Normal file
|
@ -0,0 +1,53 @@
|
|||
# This yml is used by these PR pipelines and triggers:
|
||||
# NOTE: the triggers are defined in the Azure DevOps UI as they are too complex
|
||||
#
|
||||
# - dotnet-source-build (public)
|
||||
# - PR: ultralite build
|
||||
# - CI: release/* only, every batched commit, full build
|
||||
# - Schedule: main only, full build
|
||||
#
|
||||
# - dotnet-unified-build (public)
|
||||
# - PR: lite build
|
||||
# - CI: release/* only, every batched commit, full build
|
||||
# - Schedule: main only, full build
|
||||
#
|
||||
# - dotnet-source-build (internal)
|
||||
# - PR: ultralite build
|
||||
#
|
||||
# - dotnet-source-build-lite (internal)
|
||||
# - PR: release/* and main, lite build, on-demand trigger
|
||||
#
|
||||
# - dotnet-unified-build (internal)
|
||||
# - PR: lite build
|
||||
|
||||
variables:
|
||||
# enable source-only build for pipelines that contain the -source-build string
|
||||
- name: isSourceOnlyBuild
|
||||
value: ${{ contains(variables['Build.DefinitionName'], '-source-build') }}
|
||||
|
||||
- name: isSourceOnlyBuildLite
|
||||
value: ${{ contains(variables['Build.DefinitionName'], '-source-build-lite') }}
|
||||
|
||||
- name: isScheduleTrigger
|
||||
value: ${{ eq(variables['Build.Reason'], 'Schedule') }}
|
||||
|
||||
- name: isPRTrigger
|
||||
value: ${{ eq(variables['Build.Reason'], 'PullRequest') }}
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml@self
|
||||
|
||||
stages:
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }}
|
||||
${{ if eq(variables.isScheduleTrigger, 'true') }}:
|
||||
scope: full
|
||||
${{ elseif eq(variables.isSourceOnlyBuildLite, 'true') }}:
|
||||
scope: lite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), eq(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: ultralite
|
||||
${{ elseif and(eq(variables.isPRTrigger, 'true'), ne(variables.isSourceOnlyBuild, 'true')) }}:
|
||||
scope: lite
|
||||
${{ else }}:
|
||||
scope: full
|
|
@ -2,18 +2,13 @@ stages:
|
|||
- stage: Tag_n_Scan
|
||||
displayName: Tag & Scan
|
||||
dependsOn: []
|
||||
variables:
|
||||
- template: /eng/common/templates/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
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
|
@ -32,14 +27,10 @@ stages:
|
|||
displayName: Tag the build
|
||||
workingDirectory: $(Build.SourcesDirectory)/src/installer
|
||||
|
||||
- script: >
|
||||
./.dotnet/dotnet darc vmr scan-binary-files
|
||||
--vmr "$(Build.SourcesDirectory)"
|
||||
--tmp "$(Agent.TempDirectory)"
|
||||
--baseline-file "src/VirtualMonoRepo/allowed-binaries.txt"
|
||||
|| (echo '##[error]Found binaries in the VMR' && exit 1)
|
||||
- script: |
|
||||
./eng/detect-binaries.sh
|
||||
displayName: Scan for binaries
|
||||
workingDirectory: $(Build.SourcesDirectory)/src/installer
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
continueOnError: true
|
||||
|
||||
- script: >
|
||||
|
@ -49,4 +40,4 @@ stages:
|
|||
|| (echo '##[error]Found cloaked files in the VMR' && exit 1)
|
||||
displayName: Scan for cloaked files
|
||||
workingDirectory: $(Build.SourcesDirectory)/src/installer
|
||||
continueOnError: true
|
||||
continueOnError: true
|
45
src/SourceBuild/content/eng/restore-build-edited-files.ps1
Normal file
45
src/SourceBuild/content/eng/restore-build-edited-files.ps1
Normal file
|
@ -0,0 +1,45 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Script to perform git restore for a set of commonly edited paths when building the VMR.
|
||||
|
||||
.DESCRIPTION
|
||||
This script restores the specified paths using git restore command. It provides options for logging, confirmation, and parameterized restore.
|
||||
|
||||
.PARAMETER PathsToRestore
|
||||
Specifies the paths to be restored. Default paths are:
|
||||
- src/*/eng/common/*
|
||||
- src/*global.json
|
||||
|
||||
.PARAMETER LogPath
|
||||
Specifies the path to save the log file. Default is 'restore.log' in the script directory.
|
||||
|
||||
.PARAMETER NoPrompt
|
||||
Indicates whether to skip the confirmation prompt. If specified, the script will restore the paths without confirmation.
|
||||
|
||||
#>
|
||||
|
||||
param (
|
||||
[string[]]$PathsToRestore = @(
|
||||
"src/*/eng/common/*",
|
||||
"src/*global.json"
|
||||
),
|
||||
[Alias("y")]
|
||||
[switch]$NoPrompt = $false
|
||||
)
|
||||
|
||||
# Confirmation prompt
|
||||
if (-not $NoPrompt) {
|
||||
Write-Host "Will restore changes in the following paths:"
|
||||
foreach ($path in $PathsToRestore) {
|
||||
Write-Host " $path"
|
||||
}
|
||||
$choice = Read-Host "Do you want to proceed with restoring the paths? (Y/N)"
|
||||
if (-not $($choice -ieq "Y")) {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
# Perform git restore for each path
|
||||
foreach ($path in $PathsToRestore) {
|
||||
git -C (Split-Path -Path $PSScriptRoot -Parent) restore $path
|
||||
}
|
80
src/SourceBuild/content/eng/restore-build-edited-files.sh
Executable file
80
src/SourceBuild/content/eng/restore-build-edited-files.sh
Executable file
|
@ -0,0 +1,80 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Help message
|
||||
show_help() {
|
||||
echo "Script to perform git restore for a set of commonly edited paths when building the VMR."
|
||||
echo ""
|
||||
echo "Usage: $0 [-h] [-p <path>] [-n]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h, --help Show this help message and exit"
|
||||
echo " -p, --path <path> Specify the paths to be restored (default: src/*/eng/common/*, src/*global.json)"
|
||||
echo " -y, --noprompt Skip the confirmation prompt"
|
||||
echo ""
|
||||
echo "Example:"
|
||||
echo " $0 -p \"src/*/eng/common/*\" -p \"src/*global.json\""
|
||||
echo ""
|
||||
exit 0
|
||||
}
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
# resolve $source until the file is no longer a symlink
|
||||
while [[ -h "$source" ]]; do
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
source="$(readlink "$source")"
|
||||
# if $source was a relative symlink, we need to resolve it relative to the path where the
|
||||
# symlink file was located
|
||||
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||
done
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
# Default paths to restore
|
||||
DefaultPathsToRestore=(
|
||||
"src/*/eng/common/*"
|
||||
"src/*global.json"
|
||||
)
|
||||
PathsToRestore=()
|
||||
NoPrompt=false
|
||||
|
||||
# Parse command line arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-h|--help)
|
||||
show_help
|
||||
;;
|
||||
-p|--path)
|
||||
shift
|
||||
PathsToRestore+=("$1")
|
||||
;;
|
||||
-y|--noprompt)
|
||||
NoPrompt=true
|
||||
;;
|
||||
*)
|
||||
echo "Invalid option: $1"
|
||||
show_help
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Use default paths if no paths are passed
|
||||
if [ ${#PathsToRestore[@]} -eq 0 ]; then
|
||||
PathsToRestore=("${DefaultPathsToRestore[@]}")
|
||||
fi
|
||||
|
||||
# Confirmation prompt
|
||||
if [ "$NoPrompt" = false ]; then
|
||||
echo "Will restore changes in the following paths:"
|
||||
for path in "${PathsToRestore[@]}"; do
|
||||
echo " $path"
|
||||
done
|
||||
read -p "Do you want to proceed with restoring the paths? (Y/N)" choice
|
||||
if [[ ! "$choice" =~ ^[Yy]$ ]]; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Perform git restore for each path
|
||||
for path in "${PathsToRestore[@]}"; do
|
||||
git -C "$(dirname "$scriptroot")" restore "$path"
|
||||
done
|
123
src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryTool.cs
Normal file
123
src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryTool.cs
Normal file
|
@ -0,0 +1,123 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
namespace BinaryToolKit;
|
||||
|
||||
public class BinaryTool
|
||||
{
|
||||
public async Task<int> ExecuteAsync(
|
||||
string targetDirectory,
|
||||
string outputReportDirectory,
|
||||
string? allowedBinariesFile,
|
||||
Modes mode)
|
||||
{
|
||||
DateTime startTime = DateTime.Now;
|
||||
|
||||
Log.LogInformation($"Starting binary tool at {startTime} in {mode} mode");
|
||||
|
||||
// Parse args
|
||||
targetDirectory = GetAndValidateFullPath(
|
||||
"TargetDirectory",
|
||||
targetDirectory,
|
||||
isDirectory: true,
|
||||
createIfNotExist: false,
|
||||
isRequired: true)!;
|
||||
outputReportDirectory = GetAndValidateFullPath(
|
||||
"OutputReportDirectory",
|
||||
outputReportDirectory,
|
||||
isDirectory: true,
|
||||
createIfNotExist: true,
|
||||
isRequired: true)!;
|
||||
allowedBinariesFile = GetAndValidateFullPath(
|
||||
"AllowedBinariesFile",
|
||||
allowedBinariesFile,
|
||||
isDirectory: false,
|
||||
createIfNotExist: false,
|
||||
isRequired: false);
|
||||
|
||||
// Run the tooling
|
||||
var detectedBinaries = await DetectBinaries.ExecuteAsync(targetDirectory, outputReportDirectory, allowedBinariesFile);
|
||||
|
||||
if (mode == Modes.Validate)
|
||||
{
|
||||
ValidateBinaries(detectedBinaries, outputReportDirectory);
|
||||
}
|
||||
|
||||
else if (mode == Modes.Clean)
|
||||
{
|
||||
RemoveBinaries(detectedBinaries, targetDirectory);
|
||||
}
|
||||
|
||||
Log.LogInformation("Finished all binary tasks. Took " + (DateTime.Now - startTime).TotalSeconds + " seconds.");
|
||||
|
||||
return Log.GetExitCode();
|
||||
}
|
||||
|
||||
private string? GetAndValidateFullPath(
|
||||
string parameterName,
|
||||
string? path,
|
||||
bool isDirectory,
|
||||
bool createIfNotExist,
|
||||
bool isRequired)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
if (isRequired)
|
||||
{
|
||||
Log.LogError($"Required path for '{parameterName}' is empty or contains whitespace.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
string fullPath = Path.GetFullPath(path);
|
||||
bool exists = isDirectory ? Directory.Exists(fullPath) : File.Exists(fullPath);
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
if (createIfNotExist && isDirectory)
|
||||
{
|
||||
Log.LogInformation($"Creating directory '{fullPath}' for '{parameterName}'.");
|
||||
Directory.CreateDirectory(fullPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.LogError($"{(isDirectory ? "Directory" : "File")} '{fullPath}' for '{parameterName}' does not exist.");
|
||||
Environment.Exit(1);
|
||||
}
|
||||
}
|
||||
return fullPath;
|
||||
}
|
||||
|
||||
private static void ValidateBinaries(IEnumerable<string> newBinaries, string outputReportDirectory)
|
||||
{
|
||||
if (newBinaries.Any())
|
||||
{
|
||||
string newBinariesFile = Path.Combine(outputReportDirectory, "NewBinaries.txt");
|
||||
|
||||
Log.LogDebug("New binaries:");
|
||||
|
||||
File.WriteAllLines(newBinariesFile, newBinaries);
|
||||
|
||||
foreach (var binary in newBinaries)
|
||||
{
|
||||
Log.LogDebug($" {binary}");
|
||||
}
|
||||
|
||||
Log.LogError($"ERROR: {newBinaries.Count()} new binaries. Check '{newBinariesFile}' for details.");
|
||||
}
|
||||
}
|
||||
|
||||
private static void RemoveBinaries(IEnumerable<string> binariesToRemove, string targetDirectory)
|
||||
{
|
||||
Log.LogInformation($"Removing binaries from '{targetDirectory}'...");
|
||||
|
||||
foreach (var binary in binariesToRemove)
|
||||
{
|
||||
File.Delete(Path.Combine(targetDirectory, binary));
|
||||
Log.LogDebug($" {binary}");
|
||||
}
|
||||
|
||||
Log.LogInformation($"Finished binary removal. Removed {binariesToRemove.Count()} binaries.");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk" InitialTargets="CheckCustomPackageVersionsProps">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(NetCurrent)</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<CustomPackageVersionsProps></CustomPackageVersionsProps>
|
||||
<OutputType>Exe</OutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="CheckCustomPackageVersionsProps">
|
||||
<Error Condition="'$(CustomPackageVersionsProps)' != '' And !Exists('$(CustomPackageVersionsProps)')" Text="CustomPackageVersionsProps file '$(CustomPackageVersionsProps)' does not exist." />
|
||||
</Target>
|
||||
|
||||
<!-- Need to condition this import because msbuild will complain about the project not being valid otherwise. -->
|
||||
<!-- With the condition, the CheckCustomPackageVersionsProps will run as expected and show the respective errors. -->
|
||||
<Import Project="$(CustomPackageVersionsProps)" Condition="'$(CustomPackageVersionsProps)' != ''" />
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" />
|
||||
<PackageReference Include="System.CommandLine" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,245 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
using System.Diagnostics;
|
||||
using Microsoft.Extensions.FileSystemGlobbing;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BinaryToolKit;
|
||||
|
||||
public static class DetectBinaries
|
||||
{
|
||||
private const string Utf16Marker = "UTF-16";
|
||||
private const int ChunkSize = 4096;
|
||||
private static readonly Regex GitCleanRegex = new Regex(@"Would (remove|skip)( repository)? (.*)");
|
||||
|
||||
public static async Task<List<string>> ExecuteAsync(
|
||||
string targetDirectory,
|
||||
string outputReportDirectory,
|
||||
string? allowedBinariesFile)
|
||||
{
|
||||
Log.LogInformation($"Detecting binaries in '{targetDirectory}' not listed in '{allowedBinariesFile}'...");
|
||||
|
||||
var matcher = new Matcher(StringComparison.Ordinal);
|
||||
matcher.AddInclude("**/*");
|
||||
matcher.AddExcludePatterns(await GetIgnoredPatternsAsync(targetDirectory));
|
||||
|
||||
IEnumerable<string> matchingFiles = matcher.GetResultsInFullPath(targetDirectory);
|
||||
|
||||
var tasks = matchingFiles
|
||||
.Select(async file =>
|
||||
{
|
||||
return await IsBinaryAsync(file) ? file.Substring(targetDirectory.Length + 1) : null;
|
||||
});
|
||||
|
||||
var binaryFiles = (await Task.WhenAll(tasks)).OfType<string>();
|
||||
|
||||
var unmatchedBinaryFiles = GetUnmatchedBinaries(
|
||||
binaryFiles,
|
||||
allowedBinariesFile,
|
||||
outputReportDirectory,
|
||||
targetDirectory).ToList();
|
||||
|
||||
Log.LogInformation($"Finished binary detection.");
|
||||
|
||||
return unmatchedBinaryFiles;
|
||||
}
|
||||
|
||||
private static async Task<List<string>> GetIgnoredPatternsAsync(string targetDirectory)
|
||||
{
|
||||
string gitDirectory = Path.Combine(targetDirectory, ".git");
|
||||
bool isGitRepo = Directory.Exists(gitDirectory);
|
||||
|
||||
try
|
||||
{
|
||||
if (!isGitRepo)
|
||||
{
|
||||
// Configure a fake git repo to use so that we can run git clean -ndx
|
||||
await ExecuteProcessAsync("git", $"-C {targetDirectory} init -q");
|
||||
}
|
||||
|
||||
await ExecuteProcessAsync("git", $"-C {targetDirectory} config --global safe.directory {targetDirectory}");
|
||||
|
||||
string output = await ExecuteProcessAsync("git", $"-C {targetDirectory} clean -ndx");
|
||||
|
||||
List<string> ignoredPaths = output.Split(Environment.NewLine)
|
||||
.Select(line => GitCleanRegex.Match(line))
|
||||
.Where(match => match.Success)
|
||||
.Select(match => match.Groups[3].Value)
|
||||
.ToList();
|
||||
|
||||
if (isGitRepo)
|
||||
{
|
||||
ignoredPaths.Add(".git");
|
||||
}
|
||||
|
||||
return ignoredPaths;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Ensure .git directory is deleted if it wasn't originally a git repo
|
||||
if (!isGitRepo && Directory.Exists(gitDirectory))
|
||||
{
|
||||
Directory.Delete(gitDirectory, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<bool> IsBinaryAsync(string filePath)
|
||||
{
|
||||
// Using the GNU diff heuristic to determine if a file is binary or not.
|
||||
// For more details, refer to the GNU diff manual:
|
||||
// https://www.gnu.org/software/diffutils/manual/html_node/Binary.html
|
||||
|
||||
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
|
||||
using (BinaryReader br = new BinaryReader(fs))
|
||||
{
|
||||
byte[] buffer = new byte[ChunkSize];
|
||||
int bytesRead = br.Read(buffer, 0, ChunkSize);
|
||||
for (int i = 0; i < bytesRead; i++)
|
||||
{
|
||||
if (buffer[i] == 0)
|
||||
{
|
||||
// Need to check that the file is not UTF-16 encoded
|
||||
// because heuristic can return false positives
|
||||
return await IsNotUTF16Async(filePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static async Task<bool> IsNotUTF16Async(string file)
|
||||
{
|
||||
if (Environment.OSVersion.Platform == PlatformID.Unix)
|
||||
{
|
||||
string output = await ExecuteProcessAsync("file", $"\"{file}\"");
|
||||
output = output.Split(":")[1].Trim();
|
||||
|
||||
if (output.Contains(Utf16Marker))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static async Task<string> ExecuteProcessAsync(string executable, string arguments)
|
||||
{
|
||||
ProcessStartInfo psi = new ()
|
||||
{
|
||||
FileName = executable,
|
||||
Arguments = arguments,
|
||||
CreateNoWindow = true,
|
||||
RedirectStandardOutput = true,
|
||||
RedirectStandardError = true
|
||||
};
|
||||
|
||||
var proc = Process.Start(psi)!;
|
||||
|
||||
string output = await proc.StandardOutput.ReadToEndAsync();
|
||||
string error = await proc.StandardError.ReadToEndAsync();
|
||||
|
||||
await proc.WaitForExitAsync();
|
||||
|
||||
if (!string.IsNullOrEmpty(error))
|
||||
{
|
||||
Log.LogError(error);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
private static IEnumerable<string> GetUnmatchedBinaries(
|
||||
IEnumerable<string> searchFiles,
|
||||
string? allowedBinariesFile,
|
||||
string outputReportDirectory,
|
||||
string targetDirectory)
|
||||
{
|
||||
HashSet<string> unmatchedFiles = new HashSet<string>(searchFiles);
|
||||
|
||||
var filesToPatterns = new Dictionary<string, HashSet<string>>();
|
||||
ParseAllowedBinariesFile(allowedBinariesFile, ref filesToPatterns);
|
||||
|
||||
foreach (var fileToPatterns in filesToPatterns)
|
||||
{
|
||||
var patterns = fileToPatterns.Value;
|
||||
HashSet<string> unusedPatterns = new HashSet<string>(patterns);
|
||||
|
||||
foreach (string pattern in patterns)
|
||||
{
|
||||
Matcher matcher = new Matcher(StringComparison.Ordinal);
|
||||
matcher.AddInclude(pattern);
|
||||
|
||||
var matches = matcher.Match(targetDirectory, searchFiles);
|
||||
if (matches.HasMatches)
|
||||
{
|
||||
unusedPatterns.Remove(pattern);
|
||||
unmatchedFiles.ExceptWith(matches.Files.Select(file => file.Path));
|
||||
}
|
||||
}
|
||||
|
||||
UpdateAllowedBinariesFile(fileToPatterns.Key, outputReportDirectory, unusedPatterns);
|
||||
}
|
||||
|
||||
return unmatchedFiles;
|
||||
}
|
||||
|
||||
private static void ParseAllowedBinariesFile(string? file, ref Dictionary<string, HashSet<string>> result)
|
||||
{
|
||||
if (!File.Exists(file))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!result.ContainsKey(file))
|
||||
{
|
||||
result[file] = new HashSet<string>();
|
||||
}
|
||||
|
||||
foreach (var line in File.ReadLines(file))
|
||||
{
|
||||
var trimmedLine = line.Trim();
|
||||
if (string.IsNullOrWhiteSpace(trimmedLine) || trimmedLine.StartsWith("#"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (trimmedLine.StartsWith("import:"))
|
||||
{
|
||||
var importFile = trimmedLine.Substring("import:".Length).Trim();
|
||||
if (!Path.IsPathFullyQualified(importFile))
|
||||
{
|
||||
var currentDirectory = Path.GetDirectoryName(file)!;
|
||||
importFile = Path.Combine(currentDirectory, importFile);
|
||||
}
|
||||
if (result.ContainsKey(importFile))
|
||||
{
|
||||
Log.LogWarning($" Duplicate import {importFile}. Skipping.");
|
||||
continue;
|
||||
}
|
||||
|
||||
ParseAllowedBinariesFile(importFile, ref result);
|
||||
}
|
||||
else
|
||||
{
|
||||
result[file].Add(trimmedLine.Split('#')[0].Trim());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void UpdateAllowedBinariesFile(string? file, string outputReportDirectory, HashSet<string> unusedPatterns)
|
||||
{
|
||||
if(File.Exists(file) && unusedPatterns.Any())
|
||||
{
|
||||
var lines = File.ReadAllLines(file);
|
||||
var newLines = lines.Where(line => !unusedPatterns.Contains(line)).ToList();
|
||||
|
||||
string updatedFile = Path.Combine(outputReportDirectory, "Updated" + Path.GetFileName(file));
|
||||
|
||||
File.WriteAllLines(updatedFile, newLines);
|
||||
|
||||
Log.LogInformation($" Updated allowed binaries file '{Path.GetFileName(file)}' written to '{updatedFile}'");
|
||||
}
|
||||
}
|
||||
}
|
68
src/SourceBuild/content/eng/tools/BinaryToolKit/Log.cs
Normal file
68
src/SourceBuild/content/eng/tools/BinaryToolKit/Log.cs
Normal file
|
@ -0,0 +1,68 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace BinaryToolKit;
|
||||
|
||||
public static class Log
|
||||
{
|
||||
public static LogLevel Level = LogLevel.Information;
|
||||
|
||||
private static bool WarningLogged = false;
|
||||
|
||||
private static bool ErrorLogged = false;
|
||||
|
||||
private static readonly Lazy<ILogger> _logger = new Lazy<ILogger>(ConfigureLogger);
|
||||
|
||||
public static void LogDebug(string message)
|
||||
{
|
||||
_logger.Value.LogDebug(message);
|
||||
}
|
||||
|
||||
public static void LogInformation(string message)
|
||||
{
|
||||
_logger.Value.LogInformation(message);
|
||||
}
|
||||
|
||||
public static void LogWarning(string message)
|
||||
{
|
||||
_logger.Value.LogWarning(message);
|
||||
WarningLogged = true;
|
||||
}
|
||||
|
||||
public static void LogError(string message)
|
||||
{
|
||||
_logger.Value.LogError(message);
|
||||
ErrorLogged = true;
|
||||
}
|
||||
|
||||
private static ILogger ConfigureLogger()
|
||||
{
|
||||
using ILoggerFactory loggerFactory =
|
||||
LoggerFactory.Create(builder =>
|
||||
builder.AddSimpleConsole(options =>
|
||||
{
|
||||
options.SingleLine = true;
|
||||
options.TimestampFormat = "HH:mm:ss ";
|
||||
options.UseUtcTimestamp = true;
|
||||
})
|
||||
.SetMinimumLevel(Level));
|
||||
return loggerFactory.CreateLogger("BinaryTool");
|
||||
}
|
||||
|
||||
public static int GetExitCode()
|
||||
{
|
||||
if (ErrorLogged)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (WarningLogged)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
10
src/SourceBuild/content/eng/tools/BinaryToolKit/Modes.cs
Normal file
10
src/SourceBuild/content/eng/tools/BinaryToolKit/Modes.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
namespace BinaryToolKit;
|
||||
|
||||
public enum Modes
|
||||
{
|
||||
Validate,
|
||||
Clean
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<!-- %ARTIFACTS_PATH% must be set via an environment variable (export ARTIFACTS_PATH=<path-to-sources>). -->
|
||||
<add key="artifactsPath" value="%ARTIFACTS_PATH%" />
|
||||
</packageSources>
|
||||
</configuration>
|
86
src/SourceBuild/content/eng/tools/BinaryToolKit/Program.cs
Normal file
86
src/SourceBuild/content/eng/tools/BinaryToolKit/Program.cs
Normal file
|
@ -0,0 +1,86 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
|
||||
using System;
|
||||
using System.CommandLine;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace BinaryToolKit;
|
||||
|
||||
public class Program
|
||||
{
|
||||
public static readonly CliArgument<string> TargetDirectory = new("target-directory")
|
||||
{
|
||||
Description = "The directory to run the binary tooling on.",
|
||||
Arity = ArgumentArity.ExactlyOne
|
||||
};
|
||||
|
||||
public static readonly CliOption<string> OutputReportDirectory = new("--output-directory", "-o")
|
||||
{
|
||||
Description = "The directory to output the report to.",
|
||||
Arity = ArgumentArity.ZeroOrOne,
|
||||
DefaultValueFactory = _ => Path.Combine(Directory.GetCurrentDirectory(), "binary-report")
|
||||
};
|
||||
|
||||
public static readonly CliOption<LogLevel> Level = new("--log-level", "-l")
|
||||
{
|
||||
Description = "The log level to run the tool in.",
|
||||
Arity = ArgumentArity.ZeroOrOne,
|
||||
DefaultValueFactory = _ => LogLevel.Information,
|
||||
Recursive = true
|
||||
};
|
||||
|
||||
public static readonly CliOption<string> AllowedBinariesFile = new("--allowed-binaries-file", "-ab")
|
||||
{
|
||||
Description = "The file containing the list of allowed binaries that are ignored for cleaning or validating.\n",
|
||||
Arity = ArgumentArity.ZeroOrOne
|
||||
};
|
||||
|
||||
public static int ExitCode = 0;
|
||||
|
||||
public static async Task<int> Main(string[] args)
|
||||
{
|
||||
var cleanCommand = CreateCommand("clean", "Clean the binaries in the target directory.");
|
||||
var validateCommand = CreateCommand("validate", "Detect new binaries in the target directory.");
|
||||
|
||||
var rootCommand = new CliRootCommand("Tool for detecting, validating, and cleaning binaries in the target directory.")
|
||||
{
|
||||
Level,
|
||||
cleanCommand,
|
||||
validateCommand
|
||||
};
|
||||
|
||||
SetCommandAction(cleanCommand, Modes.Clean);
|
||||
SetCommandAction(validateCommand, Modes.Validate);
|
||||
|
||||
await rootCommand.Parse(args).InvokeAsync();
|
||||
|
||||
return ExitCode;
|
||||
}
|
||||
|
||||
private static CliCommand CreateCommand(string name, string description)
|
||||
{
|
||||
return new CliCommand(name, description)
|
||||
{
|
||||
TargetDirectory,
|
||||
OutputReportDirectory,
|
||||
AllowedBinariesFile
|
||||
};
|
||||
}
|
||||
|
||||
private static void SetCommandAction(CliCommand command, Modes mode)
|
||||
{
|
||||
command.SetAction(async (result, CancellationToken) =>
|
||||
{
|
||||
Log.Level = result.GetValue(Level);
|
||||
|
||||
var binaryTool = new BinaryTool();
|
||||
|
||||
ExitCode = await binaryTool.ExecuteAsync(
|
||||
result.GetValue(TargetDirectory)!,
|
||||
result.GetValue(OutputReportDirectory)!,
|
||||
result.GetValue(AllowedBinariesFile),
|
||||
mode);
|
||||
});
|
||||
}
|
||||
}
|
|
@ -13,8 +13,9 @@
|
|||
<Target Name="Build"
|
||||
DependsOnTargets="
|
||||
UnpackTarballs;
|
||||
BuildXPlatTasks;
|
||||
BuildUnifiedBuildTasks;
|
||||
BuildMSBuildSdkResolver;
|
||||
RestoreUnifiedBuildValidationTests;
|
||||
BuildLeakDetection;
|
||||
ExtractToolPackage;
|
||||
GenerateRootFs;
|
||||
|
@ -49,7 +50,7 @@
|
|||
<UnpackedSourceBuildReferencePackages Include="$(PrebuiltSourceBuiltPackagesPath)SourceBuildReferencePackages/*"/>
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(UnpackedSourceBuildReferencePackages)" DestinationFiles="$(ReferencePackagesDir)%(Filename)%(Extension)" />
|
||||
<Move SourceFiles="@(UnpackedSourceBuildReferencePackages)" DestinationFiles="$(ReferencePackagesDir)%(Filename)%(Extension)" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)UnpackTarballs.complete" AlwaysCreate="true">
|
||||
|
@ -62,11 +63,11 @@
|
|||
DependsOnTargets="UnpackTarballs"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildMSBuildSdkResolver.complete">
|
||||
<MSBuild Projects="tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj"
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver\Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
||||
<MSBuild Projects="tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj"
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver\Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj"
|
||||
Targets="Build" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
|
@ -75,34 +76,30 @@
|
|||
</Touch>
|
||||
</Target>
|
||||
|
||||
<PropertyGroup>
|
||||
<SourceBuildMSBuildSdkResolverManifestPath>$([MSBuild]::NormalizePath('$(VSMSBuildSdkResolversDir)', 'SourceBuild.MSBuildSdkResolver', 'SourceBuild.MSBuildSdkResolver.xml'))</SourceBuildMSBuildSdkResolverManifestPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Build msbuild tasks. -->
|
||||
<Target Name="BuildXPlatTasks"
|
||||
<Target Name="BuildUnifiedBuildTasks"
|
||||
DependsOnTargets="UnpackTarballs;BuildMSBuildSdkResolver"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildXPlatTasks.complete">
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildUnifiedBuildTasks.complete">
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.UnifiedBuild.Tasks\Microsoft.DotNet.UnifiedBuild.Tasks.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj"
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.UnifiedBuild.Tasks\Microsoft.DotNet.UnifiedBuild.Tasks.csproj"
|
||||
Targets="Build" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)BuildXPlatTasks.complete" AlwaysCreate="true">
|
||||
<Touch Files="$(BaseIntermediateOutputPath)BuildUnifiedBuildTasks.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- Build msbuild tasks for the poisoning feature. -->
|
||||
<!-- Build msbuild tasks for the poisoning feature even when EnablePoison!=true to validate that the task project
|
||||
builds as EnablePoison=true isn't exercised in PR validation. -->
|
||||
<Target Name="BuildLeakDetection"
|
||||
DependsOnTargets="ExtractToolPackage;BuildMSBuildSdkResolver"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildLeakDetection.complete"
|
||||
Condition="'$(EnablePoison)' == 'true'">
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildLeakDetection.complete">
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
@ -116,6 +113,13 @@
|
|||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="RestoreUnifiedBuildValidationTests"
|
||||
Condition="'$(ShortStack)' != 'true' and '$(PortableBuild)' == 'true' and '$(PgoInstrument)' != 'true'" >
|
||||
<MSBuild Projects="../../test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateRootFs"
|
||||
Condition="'$(BuildOS)' != 'windows' and '$(CrossBuild)' == 'true' and '$(ROOTFS_DIR)' == ''">
|
||||
<PropertyGroup>
|
||||
|
@ -139,18 +143,13 @@
|
|||
DestinationFolder="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/"
|
||||
SkipUnchangedFiles="true" />
|
||||
|
||||
<!-- When unpacking, this executable file has the wrong permissions on
|
||||
non-windows systems: https://github.com/NuGet/Home/issues/13121. -->
|
||||
<Exec Command="chmod 755 git-clone-to-dir.sh"
|
||||
WorkingDirectory="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/tools/SourceBuild/" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ExtractToolPackage.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="MarkAndCatalogPackages" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<UsingTask TaskName="Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.MarkAndCatalogPackages" AssemblyFile="$(MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly)" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<Target Name="PoisonPrebuiltPackages"
|
||||
Condition="'$(EnablePoison)' == 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using Microsoft.DotNet.UnifiedBuild.Tasks;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
|
|
@ -6,12 +6,11 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj" />
|
||||
<ProjectReference Include="../Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(NetCurrent)</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ReferencePath Include="@(SdkAssembly)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -1,89 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
/*
|
||||
* This task updates the package source mappings in the NuGet.Config.
|
||||
* If package source mappings are used, source-build packages sources will be added with the cumulative package patterns
|
||||
* for all of the existing package sources. When building offline, the existing package source mappings will be removed;
|
||||
* otherwise they will be preserved after the source-build sources.
|
||||
*/
|
||||
public class UpdateNuGetConfigPackageSourcesMappings : Task
|
||||
{
|
||||
[Required]
|
||||
public string NuGetConfigFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to work in offline mode (remove all internet sources) or online mode (remove only authenticated sources)
|
||||
/// </summary>
|
||||
public bool BuildWithOnlineFeeds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A list of all source-build specific NuGet sources.
|
||||
/// </summary>
|
||||
public string[] SourceBuildSources { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
string xml = File.ReadAllText(NuGetConfigFile);
|
||||
string newLineChars = FileUtilities.DetectNewLineChars(xml);
|
||||
XDocument document = XDocument.Parse(xml);
|
||||
XElement pkgSrcMappingElement = document.Root.Descendants().FirstOrDefault(e => e.Name == "packageSourceMapping");
|
||||
|
||||
if (pkgSrcMappingElement == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Union all package sources to get the distinct list. These will get added to the source-build sources.
|
||||
string[] packagePatterns = pkgSrcMappingElement.Descendants()
|
||||
.Where(e => e.Name == "packageSource")
|
||||
.SelectMany(e => e.Descendants().Where(e => e.Name == "package"))
|
||||
.Select(e => e.Attribute("pattern").Value)
|
||||
.Distinct()
|
||||
.ToArray();
|
||||
|
||||
if (!BuildWithOnlineFeeds)
|
||||
{
|
||||
// When building offline remove all packageSourceMappings.
|
||||
pkgSrcMappingElement?.ReplaceNodes(new XElement("clear"));
|
||||
}
|
||||
|
||||
XElement pkgSrcMappingClearElement = pkgSrcMappingElement.Descendants().FirstOrDefault(e => e.Name == "clear");
|
||||
if (pkgSrcMappingClearElement == null)
|
||||
{
|
||||
pkgSrcMappingClearElement = new XElement("clear");
|
||||
pkgSrcMappingElement.AddFirst(pkgSrcMappingClearElement);
|
||||
}
|
||||
|
||||
foreach (string packageSource in SourceBuildSources)
|
||||
{
|
||||
XElement pkgSrc = new XElement("packageSource", new XAttribute("key", packageSource));
|
||||
foreach (string packagePattern in packagePatterns)
|
||||
{
|
||||
pkgSrc.Add(new XElement("package", new XAttribute("pattern", packagePattern)));
|
||||
}
|
||||
|
||||
pkgSrcMappingClearElement.AddAfterSelf(pkgSrc);
|
||||
}
|
||||
|
||||
using (var writer = XmlWriter.Create(NuGetConfigFile, new XmlWriterSettings { NewLineChars = newLineChars, Indent = true }))
|
||||
{
|
||||
document.Save(writer);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" ExcludeAssets="runtime" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" ExcludeAssets="runtime" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="InstallResolver" BeforeTargets="PrepareForRun">
|
||||
<PropertyGroup>
|
||||
<UnifiedBuildMSBuildSdkResolverManifestPath>$([MSBuild]::NormalizePath('$(VSMSBuildSdkResolversDir)', '$(MSBuildProjectName)', '$(MSBuildProjectName).xml'))</UnifiedBuildMSBuildSdkResolverManifestPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteLinesToFile
|
||||
File="$(UnifiedBuildMSBuildSdkResolverManifestPath)"
|
||||
Lines="<SdkResolver><Path>$(TargetPath)</Path></SdkResolver>"
|
||||
Overwrite="true"
|
||||
WriteOnlyWhenDifferent="true" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
|
@ -9,7 +9,7 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.DotNet.SourceBuild.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
/// <summary>
|
||||
/// Extends the SDK to handle "SOURCE_BUILT_SDK_*" override environment variables. Each override
|
||||
|
@ -25,9 +25,9 @@ namespace Microsoft.DotNet.SourceBuild.Tasks
|
|||
/// SOURCE_BUILT_SDK_VERSION_EXAMPLE=1.0.0-source-built
|
||||
/// (Optional) Version of the SDK package to use. This is informational.
|
||||
/// </summary>
|
||||
public class SourceBuiltSdkResolver : SdkResolver
|
||||
public class UnifiedBuildSdkResolver : SdkResolver
|
||||
{
|
||||
public override string Name => nameof(SourceBuiltSdkResolver);
|
||||
public override string Name => nameof(UnifiedBuildSdkResolver);
|
||||
|
||||
public override int Priority => 0;
|
||||
|
|
@ -10,8 +10,7 @@ using System.Xml.Linq;
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
/*
|
||||
* This task adds a source to a well-formed NuGet.Config file. If a source with `SourceName` is already present, then
|
|
@ -5,7 +5,7 @@
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
public abstract partial class BuildTask : ITask
|
||||
{
|
|
@ -12,7 +12,7 @@ using System.Reflection.PortableExecutable;
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
// Creates a symbols layout that matches the SDK layout
|
||||
public class CreateSdkSymbolsLayout : Task
|
|
@ -5,7 +5,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.DotNet.SourceBuild.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
internal static class EnumerableExtensions
|
||||
{
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
namespace Microsoft.DotNet.UnifiedBuild.Tasks
|
||||
{
|
||||
public static class FileUtilities
|
||||
{
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue