Merge branch 'release/8.0.1xx' of https://github.com/dotnet/installer into merge/release/6.0.4xx-to-release/8.0.1xx
This commit is contained in:
commit
b70b68c357
526 changed files with 16103 additions and 13395 deletions
12
.config/dotnet-tools.json
Normal file
12
.config/dotnet-tools.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"microsoft.dotnet.darc": {
|
||||
"version": "1.1.0-beta.23621.3",
|
||||
"commands": [
|
||||
"darc"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
55
.devcontainer/vmr-source-build/README.md
Normal file
55
.devcontainer/vmr-source-build/README.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
<!--
|
||||
######## ######## ### ######## ######## ## ## #### ######
|
||||
## ## ## ## ## ## ## ## ## ## ## ## ##
|
||||
## ## ## ## ## ## ## ## ## ## ## ##
|
||||
######## ###### ## ## ## ## ## ######### ## ######
|
||||
## ## ## ######### ## ## ## ## ## ## ##
|
||||
## ## ## ## ## ## ## ## ## ## ## ## ##
|
||||
## ## ######## ## ## ######## ## ## ## #### ######
|
||||
-->
|
||||
|
||||
This Codespace can help you debug the source build of .NET. In case you have run this from a
|
||||
`dotnet/installer` PR branch, it will contain the VMR (`dotnet/dotnet`) checked out into
|
||||
`/workspaces/dotnet` with the PR changes pulled into it. You can then attempt to source-build
|
||||
the VMR which is what the VMR leg in the installer PR build doing. This build takes about 45
|
||||
minutes and, after completion, produces an archived .NET SDK located in
|
||||
`/workspaces/dotnet/artifacts/x64/Release`.
|
||||
|
||||
## Build the SDK
|
||||
|
||||
To build the VMR, run following:
|
||||
```bash
|
||||
cd /workspaces/dotnet
|
||||
./build.sh --online
|
||||
```
|
||||
|
||||
> Please note that, at this time, the build modifies some of the checked-in sources so it might
|
||||
be preferential to rebuild the Codespace between attempts (or reset the working tree changes).
|
||||
|
||||
For more details, see the instructions at https://github.com/dotnet/dotnet.
|
||||
|
||||
## Synchronize your changes in locally
|
||||
|
||||
When debugging the build, you have two options how to test your changes in this environment.
|
||||
|
||||
### Making changes to the VMR directly
|
||||
|
||||
You can make the changes directly to the local checkout of the VMR at `/workspaces/dotnet`. You
|
||||
can then try to build the VMR and see if the change works for you.
|
||||
|
||||
### Pull changes into the Codespace from your fork
|
||||
|
||||
You can also make a fix in the individual source repository (e.g. `dotnet/runtime`) and push the
|
||||
fix into a branch; can be in your fork too. Once you have the commit pushed, you can pull this
|
||||
version of the repository into the Codespace by running:
|
||||
|
||||
```
|
||||
/workspaces/synchronize-vmr.sh \
|
||||
--repository <repo>:<commit, tag or branch> \
|
||||
--remote <repo>:<fork URI>
|
||||
```
|
||||
|
||||
You can now proceed building the VMR in the Codespace using instructions above. You can repeat
|
||||
this process and sync a new commit from your fork. Only note that, at this time, Source-Build
|
||||
modifies some of the checked-in sources so you'll need to revert the working tree changes
|
||||
between attempts.
|
25
.devcontainer/vmr-source-build/devcontainer.json
Normal file
25
.devcontainer/vmr-source-build/devcontainer.json
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Container suitable for investigating issues with source build
|
||||
// Contains the VMR (dotnet/dotnet) with applied changes from the current PR
|
||||
// The container supports source-building the SDK
|
||||
{
|
||||
"name": "VMR with PR changes",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36",
|
||||
"hostRequirements": {
|
||||
// A completely source built .NET is >64 GB with all the repos/artifacts
|
||||
"storage": "128gb"
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"ms-dotnettools.csharp"
|
||||
]
|
||||
},
|
||||
"codespaces": {
|
||||
"openFiles": [
|
||||
"installer/.devcontainer/vmr-source-build/README.md"
|
||||
]
|
||||
}
|
||||
},
|
||||
"onCreateCommand": "${containerWorkspaceFolder}/installer/.devcontainer/vmr-source-build/init.sh",
|
||||
"workspaceFolder": "/workspaces"
|
||||
}
|
30
.devcontainer/vmr-source-build/init.sh
Executable file
30
.devcontainer/vmr-source-build/init.sh
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
script_root="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
installer_dir=$(realpath "$script_root/../..")
|
||||
workspace_dir=$(realpath "$installer_dir/../")
|
||||
tmp_dir=$(realpath "$workspace_dir/tmp")
|
||||
vmr_dir=$(realpath "$workspace_dir/dotnet")
|
||||
|
||||
cp "$installer_dir/.devcontainer/vmr-source-build/synchronize-vmr.sh" "$workspace_dir"
|
||||
|
||||
mkdir -p "$tmp_dir"
|
||||
|
||||
# Codespaces performs a shallow fetch only
|
||||
git -C "$installer_dir" fetch --all --unshallow
|
||||
|
||||
# We will try to figure out, which branch is the current (PR) branch based off of
|
||||
# We need this to figure out, which VMR branch to use
|
||||
vmr_branch=$(git -C "$installer_dir" log --pretty=format:'%D' HEAD^ \
|
||||
| grep 'origin/' \
|
||||
| head -n1 \
|
||||
| sed 's@origin/@@' \
|
||||
| sed 's@,.*@@')
|
||||
|
||||
"$workspace_dir/synchronize-vmr.sh" --branch "$vmr_branch" --debug
|
||||
|
||||
(cd "$vmr_dir" && ./prep.sh)
|
4
.devcontainer/vmr-source-build/synchronize-vmr.sh
Executable file
4
.devcontainer/vmr-source-build/synchronize-vmr.sh
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
(cd /workspaces/installer \
|
||||
&& ./eng/vmr-sync.sh --vmr /workspaces/dotnet --tmp /workspaces/tmp $*)
|
637
.vsts-ci.yml
637
.vsts-ci.yml
|
@ -7,31 +7,23 @@ trigger:
|
|||
- main
|
||||
- master
|
||||
- release/*
|
||||
- internal/release/3.*
|
||||
- internal/release/5.*
|
||||
- internal/release/6.*
|
||||
- internal/release/*
|
||||
|
||||
variables:
|
||||
- name: _PublishUsingPipelines
|
||||
value: false
|
||||
- name: PostBuildSign
|
||||
value: true
|
||||
- ${{ 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-Installer-SDLValidation-Params
|
||||
- name: _PublishUsingPipelines
|
||||
value: true
|
||||
# Default to running tests in PRs and public CI, but not in official builds
|
||||
- name: _WindowsTestArg
|
||||
value: '-test'
|
||||
- name: _NonWindowsTestArg
|
||||
value: '--test'
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- name: _WindowsTestArg
|
||||
value: ''
|
||||
- name: _NonWindowsTestArg
|
||||
value: ''
|
||||
- name: _InternalRuntimeDownloadArgs
|
||||
value: ''
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
|
@ -39,10 +31,7 @@ variables:
|
|||
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)
|
||||
- name: DncEngPublicBuildPool
|
||||
value: NetCore-Svc-Public
|
||||
- name: DncEngInternalBuildPool
|
||||
value: NetCore1ESPool-Svc-Internal
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
# Set the MicroBuild plugin installation directory to the agent temp directory to avoid SDL tool scanning.
|
||||
- name: MicroBuildOutputFolderOverride
|
||||
value: $(Agent.TempDirectory)
|
||||
|
@ -61,395 +50,299 @@ extends:
|
|||
template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines
|
||||
parameters:
|
||||
containers:
|
||||
alpine319WithNode:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
|
||||
cblMariner20Fpm:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
|
||||
centosStream8:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
|
||||
debian11:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
|
||||
fedora40:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-40
|
||||
ubuntu2204:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
mariner20CrossArm:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
|
||||
ubuntu2204DebPkg:
|
||||
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
|
||||
sdl:
|
||||
sourceAnalysisPool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
componentgovernance:
|
||||
ignoreDirectories: artifacts, .packages
|
||||
# Temporary to workaround MicroBuild issues.
|
||||
credscan:
|
||||
enabled: false
|
||||
justificationForDisabling: 'CredScan is failing on the MicroBuild signing plugin. "MicroBuild/Plugins/nuget.config" has changing content and thus cannot be baselined.'
|
||||
stages:
|
||||
- stage: build
|
||||
- stage: Build
|
||||
jobs:
|
||||
# Build Retry Configuration
|
||||
- job: Publish_Build_Configuration
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-windows-2019-open
|
||||
image: 1es-windows-2022-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
displayName: Publish Build Config
|
||||
inputs:
|
||||
targetPath: $(Build.SourcesDirectory)\eng\BuildConfiguration
|
||||
artifactName: BuildConfiguration
|
||||
- template: /eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-windows-2019-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
os: windows
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Public-only builds
|
||||
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Debug_x86:
|
||||
_BuildConfig: Debug
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
Build_ES_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: es
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: ''
|
||||
# Internal-only builds
|
||||
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Release_x86:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
# Always run builds
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
Build_Release_arm:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: arm
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: arm64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
targetPath: $(Build.SourcesDirectory)\eng\buildConfiguration
|
||||
artifactName: buildConfiguration
|
||||
|
||||
- template: /eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-windows-2019-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
os: windows
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Always run builds
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
# Never run tests on PGO bits
|
||||
_TestArg: ''
|
||||
Build_Release_x86:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: ''
|
||||
pgoInstrument: true
|
||||
# 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_40_Debug_x64
|
||||
container: fedora40
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_CentOS_8_Stream_Debug_x64
|
||||
container: centosStream8
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Debian_11_Debug_x64
|
||||
container: debian11
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Debug
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
# Never run tests on arm64
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Debug_x64
|
||||
container: alpine319WithNode
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: true
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: true
|
||||
|
||||
- template: /eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Ubuntu_18_04_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Fedora_29_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker fedora.29'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Debian_11_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker debian'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_AdditionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Rhel_7_2_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Rhel_7_2_Release_Arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
_AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true'
|
||||
Build_Arm_Debug:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Arm64_Debug:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_arm:
|
||||
_BuildConfig: Debug
|
||||
# linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_arm64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker alpine.3.15'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
|
||||
_BuildArchitecture: 'x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
_AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Arm_Release:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Arm64_Release:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_arm:
|
||||
_BuildConfig: Release
|
||||
# linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker alpine.3.15'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
|
||||
_BuildArchitecture: 'x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
_AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
Build_Linux_Portable_Deb_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_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'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Linux_Portable_Rpm_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Linux_Portable_Rpm_Release_Arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: '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'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_LinuxPortable_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
# MacOS
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: true
|
||||
|
||||
- template: /eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Always run builds
|
||||
Build_LinuxPortable_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: ''
|
||||
pgoInstrument: true
|
||||
# Official/PGO instrumentation Builds
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
# Windows
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_x86
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x86
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
jobName: Build_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
# Linux
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-arm'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Arm64_Release
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: mariner20CrossArm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-musl-arm64'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_x64
|
||||
container: alpine319WithNode
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runtimeIdentifier: 'linux-musl-x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
additionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Deb_Release_x64
|
||||
container: ubuntu2204DebPkg
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_x64
|
||||
container: cblMariner20Fpm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_Portable_Rpm_Release_Arm64
|
||||
container: cblMariner20Fpm
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runtimeIdentifier: 'linux-arm64'
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_LinuxPortable_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
runTests: false
|
||||
|
||||
- template: /eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
pool:
|
||||
name: Azure Pipelines
|
||||
image: macOS-latest
|
||||
os: macOS
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_RuntimeIdentifier: '--runtime-id osx-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
# MacOS
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_x64
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: x64
|
||||
runTests: false
|
||||
- template: eng/build.yml@self
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
jobName: Build_Release_arm64
|
||||
runtimeIdentifier: 'osx-arm64'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm64
|
||||
runTests: false
|
||||
|
||||
# Source Build
|
||||
- template: /eng/common/templates-official/jobs/source-build.yml@self
|
||||
parameters:
|
||||
enableInternalSources: true
|
||||
|
||||
- template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml@self
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- ${{ 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:
|
||||
dependsOn:
|
||||
- Windows_NT
|
||||
- Linux
|
||||
- Darwin
|
||||
- Source_Build_Managed
|
||||
- Source_Build_Create_Tarball
|
||||
- PGO_Linux
|
||||
- PGO_Windows_NT
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
pool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: /eng/common/templates-official/post-build/post-build.yml@self
|
||||
parameters:
|
||||
publishingInfraVersion: 3
|
||||
enableSymbolValidation: false
|
||||
enableSigningValidation: false
|
||||
enableNugetValidation: false
|
||||
enableSourceLinkValidation: false
|
||||
publishInstallersAndChecksums: true
|
||||
SDLValidationParameters:
|
||||
enable: false
|
||||
params: ' -SourceToolsList @("policheck","credscan")
|
||||
-TsaInstanceURL $(_TsaInstanceURL)
|
||||
-TsaProjectName $(_TsaProjectName)
|
||||
-TsaNotificationEmail $(_TsaNotificationEmail)
|
||||
-TsaCodebaseAdmin $(_TsaCodebaseAdmin)
|
||||
-TsaBugAreaPath $(_TsaBugAreaPath)
|
||||
-TsaIterationPath $(_TsaIterationPath)
|
||||
-TsaRepositoryName "dotnet-installer"
|
||||
-TsaCodebaseName "dotnet-installer"
|
||||
-TsaPublish $True'
|
||||
|
|
672
.vsts-pr.yml
672
.vsts-pr.yml
|
@ -5,403 +5,355 @@ trigger:
|
|||
- main
|
||||
- master
|
||||
- release/*
|
||||
- internal/release/3.*
|
||||
- internal/release/5.*
|
||||
- internal/release/6.*
|
||||
- internal/release/*
|
||||
|
||||
variables:
|
||||
- name: _PublishUsingPipelines
|
||||
value: false
|
||||
- name: PostBuildSign
|
||||
value: true
|
||||
- ${{ 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-Installer-SDLValidation-Params
|
||||
- name: _PublishUsingPipelines
|
||||
value: true
|
||||
# Default to running tests in PRs and public CI, but not in official builds
|
||||
- name: _WindowsTestArg
|
||||
value: '-test'
|
||||
- name: _NonWindowsTestArg
|
||||
value: '--test'
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- name: _WindowsTestArg
|
||||
value: ''
|
||||
- name: _NonWindowsTestArg
|
||||
value: ''
|
||||
|
||||
- name: _InternalRuntimeDownloadArgs
|
||||
value: ''
|
||||
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- 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
|
||||
- stage: Build
|
||||
jobs:
|
||||
# This job is for build retry configuration.
|
||||
- job: Publish_Build_Configuration
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCore-Svc-Public
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022preview.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022preview.amd64
|
||||
steps:
|
||||
- publish: $(Build.SourcesDirectory)\eng\BuildConfiguration
|
||||
artifact: BuildConfiguration
|
||||
- publish: $(Build.SourcesDirectory)\eng\buildConfiguration
|
||||
artifact: buildConfiguration
|
||||
displayName: Publish Build Config
|
||||
- template: /eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCore-Svc-Public
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Public-only builds
|
||||
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Debug_x86:
|
||||
_BuildConfig: Debug
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
Build_ES_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: es
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: ''
|
||||
# Internal-only builds
|
||||
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Release_x86:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
# Always run builds
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
_TestArg: $(_WindowsTestArg)
|
||||
Build_Release_arm:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: arm
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: arm64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
|
||||
## 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
|
||||
|
||||
- template: /eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCore-Svc-Public
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Always run builds
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x64
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: '/p:PublishInternalAsset=true'
|
||||
# Never run tests on PGO bits
|
||||
_TestArg: ''
|
||||
Build_Release_x86:
|
||||
_BuildConfig: Release
|
||||
_BuildArchitecture: x86
|
||||
_DOTNET_CLI_UI_LANGUAGE: ''
|
||||
_AdditionalBuildParameters: ''
|
||||
_TestArg: ''
|
||||
pgoInstrument: true
|
||||
## Linux
|
||||
|
||||
- template: /eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCore-Svc-Public
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Ubuntu_18_04_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Fedora_29_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker fedora.29'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Debian_11_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker debian'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_AdditionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Rhel_7_2_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Rhel_7_2_Release_Arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
_AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true'
|
||||
Build_Arm_Debug:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Arm64_Debug:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_arm:
|
||||
_BuildConfig: Debug
|
||||
# linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_arm64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Debug_x64:
|
||||
_BuildConfig: Debug
|
||||
_DockerParameter: '--docker alpine.3.15'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
|
||||
_BuildArchitecture: 'x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
_AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
Build_Arm_Release:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Arm64_Release:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_arm:
|
||||
_BuildConfig: Release
|
||||
# linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm'
|
||||
_BuildArchitecture: 'arm'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
_AdditionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_Linux_musl_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker alpine.3.15'
|
||||
_LinuxPortable: ''
|
||||
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
|
||||
_BuildArchitecture: 'x64'
|
||||
# Pass in HostOSName when running on alpine
|
||||
_AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
|
||||
Build_Linux_Portable_Deb_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker ubuntu.18.04'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_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'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Linux_Portable_Rpm_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
# Do not publish zips and tarballs. The linux-x64 binaries are
|
||||
# already published by Build_LinuxPortable_Release_x64
|
||||
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Linux_Portable_Rpm_Release_Arm64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: '--docker rhel'
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: '--runtime-id linux-arm64'
|
||||
_BuildArchitecture: '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'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
Build_LinuxPortable_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
- 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_36_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36'
|
||||
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
|
||||
|
||||
- template: /eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCore-Svc-Public
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
# Always run builds
|
||||
Build_LinuxPortable_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_DockerParameter: ''
|
||||
_LinuxPortable: '--linux-portable'
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: ''
|
||||
pgoInstrument: true
|
||||
|
||||
- template: /eng/build-pr.yml
|
||||
parameters:
|
||||
agentOs: Darwin
|
||||
pool:
|
||||
vmImage: 'macOS-latest'
|
||||
timeoutInMinutes: 180
|
||||
strategy:
|
||||
matrix:
|
||||
Build_Release_x64:
|
||||
_BuildConfig: Release
|
||||
_RuntimeIdentifier: ''
|
||||
_BuildArchitecture: 'x64'
|
||||
_TestArg: $(_NonWindowsTestArg)
|
||||
Build_Release_arm64:
|
||||
_BuildConfig: Release
|
||||
_RuntimeIdentifier: '--runtime-id osx-arm64'
|
||||
_BuildArchitecture: 'arm64'
|
||||
# Never run tests on arm64
|
||||
_TestArg: ''
|
||||
# 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:cbl-mariner-2.0-cross-arm-alpine'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
additionalBuildParameters: '/p:OSName="linux-musl"'
|
||||
linuxPortable: false
|
||||
runTests: false
|
||||
- template: eng/build-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
|
||||
parameters:
|
||||
enableInternalSources: true
|
||||
|
||||
- template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- ${{ 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:
|
||||
dependsOn:
|
||||
- Windows_NT
|
||||
- Linux
|
||||
- Darwin
|
||||
- Source_Build_Managed
|
||||
- Source_Build_Create_Tarball
|
||||
- PGO_Linux
|
||||
- PGO_Windows_NT
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals windows.vs2017.amd64
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: eng\common\templates\post-build\post-build.yml
|
||||
parameters:
|
||||
publishingInfraVersion: 3
|
||||
enableSymbolValidation: false
|
||||
enableSigningValidation: false
|
||||
enableNugetValidation: false
|
||||
enableSourceLinkValidation: false
|
||||
publishInstallersAndChecksums: true
|
||||
SDLValidationParameters:
|
||||
enable: false
|
||||
params: ' -SourceToolsList @("policheck","credscan")
|
||||
-TsaInstanceURL $(_TsaInstanceURL)
|
||||
-TsaProjectName $(_TsaProjectName)
|
||||
-TsaNotificationEmail $(_TsaNotificationEmail)
|
||||
-TsaCodebaseAdmin $(_TsaCodebaseAdmin)
|
||||
-TsaBugAreaPath $(_TsaBugAreaPath)
|
||||
-TsaIterationPath $(_TsaIterationPath)
|
||||
-TsaRepositoryName "dotnet-installer"
|
||||
-TsaCodebaseName "dotnet-installer"
|
||||
-TsaPublish $True'
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2022.amd64
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths.
|
||||
# See https://help.github.com/articles/about-code-owners/
|
||||
|
||||
# Snaps
|
||||
|
||||
/.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
|
||||
/src/VirtualMonoRepo/ @dotnet/product-construction
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</BuildArchitecture>
|
||||
<Architecture Condition="'$(Architecture)' == '' AND ('$(BuildArchitecture)' == 'arm64' OR '$(BuildArchitecture)' == 'arm')">$(BuildArchitecture)</Architecture>
|
||||
<Architecture Condition="'$(Architecture)' == '' AND '$(BuildArchitecture)' == 's390x'">$(BuildArchitecture)</Architecture>
|
||||
<Architecture Condition="'$(Architecture)' == '' AND '$(BuildArchitecture)' == 'ppc64le'">$(BuildArchitecture)</Architecture>
|
||||
<Architecture Condition="'$(Architecture)' == ''">x64</Architecture>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(PgoInstrument)' == 'true'">
|
||||
|
@ -24,7 +25,7 @@
|
|||
<DebugSymbols>true</DebugSymbols>
|
||||
|
||||
<IsShipping>true</IsShipping>
|
||||
<CoreSdkTargetFramework>net6.0</CoreSdkTargetFramework>
|
||||
<CoreSdkTargetFramework>net8.0</CoreSdkTargetFramework>
|
||||
|
||||
<!-- MSB3243 and MSB3247 fire when attempting to resolve references to the same assembly from different cultures.
|
||||
This is a prevalent problem in building the precomputed assembly reference cache. Limiting the assemblies resolved
|
||||
|
|
12
Native.sln
12
Native.sln
|
@ -11,30 +11,30 @@ Global
|
|||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x86 = Debug|x86
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|arm = Debug|arm
|
||||
Debug|arm64 = Debug|arm64
|
||||
Debug|arm = Debug|arm
|
||||
Release|x86 = Release|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|arm = Release|arm
|
||||
Release|arm64 = Release|arm64
|
||||
Release|arm = Release|arm
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x86.Build.0 = Debug|x86
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|x64.Build.0 = Debug|x64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm.ActiveCfg = Debug|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm.Build.0 = Debug|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm64.ActiveCfg = Debug|arm64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm64.Build.0 = Debug|arm64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm.ActiveCfg = Debug|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Debug|arm.Build.0 = Debug|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x86.ActiveCfg = Release|x86
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x86.Build.0 = Release|x86
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x64.ActiveCfg = Release|x64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|x64.Build.0 = Release|x64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.ActiveCfg = Release|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.Build.0 = Release|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm64.ActiveCfg = Release|arm64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm64.Build.0 = Release|arm64
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.ActiveCfg = Release|arm
|
||||
{688E2883-C5A9-4D66-A207-772C9160989C}.Release|arm.Build.0 = Release|arm
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
126
NuGet.config
126
NuGet.config
|
@ -6,92 +6,90 @@
|
|||
<packageSources>
|
||||
<clear />
|
||||
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
|
||||
<!-- Begin: Package sources from dotnet-aspnetcore -->
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-fedc545c/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-fedc545c-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-fedc545c-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-fedc545c-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-fedc545c-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-aspnetcore -->
|
||||
<!-- Begin: Package sources from dotnet-emsdk -->
|
||||
<add key="darc-pub-dotnet-emsdk-8601068" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-86010681/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-8601068-5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-86010681-5/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-8601068-3" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-86010681-3/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-8601068-2" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-86010681-2/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-8601068-1" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-86010681-1/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-a64772f" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-a64772f5/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-a64772f-5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-a64772f5-5/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-a64772f-3" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-a64772f5-3/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-a64772f-2" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-a64772f5-2/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-emsdk-a64772f-1" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-a64772f5-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-emsdk -->
|
||||
<!-- Begin: Package sources from dotnet-aspnetcore -->
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-2f1db204/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-2f1db204-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-2f1db204-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-2f1db204-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-aspnetcore-2f1db204-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-aspnetcore -->
|
||||
<!-- Begin: Package sources from DotNet-msbuild-Trusted -->
|
||||
<add key="darc-pub-DotNet-msbuild-Trusted-a400405" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-a400405b/nuget/v3/index.json" />
|
||||
<add key="darc-pub-DotNet-msbuild-Trusted-b5265ef" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-b5265ef3/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from DotNet-msbuild-Trusted -->
|
||||
<!-- Begin: Package sources from dotnet-runtime -->
|
||||
<add key="darc-int-dotnet-runtime-e77011b" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-e77011b3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-e77011b3-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-e77011b3-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-e77011b3-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-e77011b3-1/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-2aade6be/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-2aade6be-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-2aade6be-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-2aade6be-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-2aade6be-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-runtime -->
|
||||
<!-- Begin: Package sources from dotnet-templating -->
|
||||
<add key="darc-int-dotnet-templating-89f5155" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-templating-89f5155b/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-templating-89f5155b-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-templating-89f5155b-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-templating-89f5155b-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-templating-89f5155b-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-templating -->
|
||||
<!-- Begin: Package sources from dotnet-sdk -->
|
||||
<add key="darc-int-dotnet-sdk-289435f" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-sdk-289435f5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-sdk-289435f5-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-sdk-289435f5-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-sdk-289435f5-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-sdk-289435f5-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-sdk -->
|
||||
<!-- Begin: Package sources from dotnet-windowsdesktop -->
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-ef2ca68f/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-ef2ca68f-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-ef2ca68f-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-ef2ca68f-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-ef2ca68f-1/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-28ae95bc/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-5" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-28ae95bc-5/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-3" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-28ae95bc-3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-28ae95bc-2/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-windowsdesktop-28ae95bc-1/nuget/v3/index.json" />
|
||||
<!-- End: Package sources from dotnet-windowsdesktop -->
|
||||
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
|
||||
<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="dotnet3-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet3.1-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
||||
<add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-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" />
|
||||
<add key="dotnet7-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
|
||||
<add key="dotnet8-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet-libraries" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json" />
|
||||
<!-- Temporary feed for Xamarin workload manifest -->
|
||||
<add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
|
||||
<add key="dotnet-libraries-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries-transport/nuget/v3/index.json" />
|
||||
<add key="msbuild-prerelease-with-release-version" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-DotNet-msbuild-Trusted-8ffc3fe3/nuget/v3/index.json" />
|
||||
<add key="darc-int-dotnet-tools-internal" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet-tools-internal/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<disabledPackageSources>
|
||||
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
|
||||
<!-- Begin: Package sources from DotNet-msbuild-Trusted -->
|
||||
<!-- End: Package sources from DotNet-msbuild-Trusted -->
|
||||
<!-- Begin: Package sources from dotnet-aspnetcore -->
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-1" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-2" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-3" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545-5" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-fedc545" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-1" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-2" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-3" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20-5" value="true" />
|
||||
<add key="darc-int-dotnet-aspnetcore-2f1db20" value="true" />
|
||||
<!-- End: Package sources from dotnet-aspnetcore -->
|
||||
<!-- Begin: Package sources from dotnet-runtime -->
|
||||
<add key="darc-int-dotnet-runtime-e77011b-1" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-2" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-3" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b-5" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-e77011b" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-1" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-2" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-3" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b-5" value="true" />
|
||||
<add key="darc-int-dotnet-runtime-2aade6b" value="true" />
|
||||
<!-- Begin: Package sources from dotnet-sdk -->
|
||||
<add key="darc-int-dotnet-sdk-289435f-1" value="true" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-2" value="true" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-3" value="true" />
|
||||
<add key="darc-int-dotnet-sdk-289435f-5" value="true" />
|
||||
<add key="darc-int-dotnet-sdk-289435f" value="true" />
|
||||
<!-- End: Package sources from dotnet-sdk -->
|
||||
<!-- Begin: Package sources from dotnet-windowsdesktop -->
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-1" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-2" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-3" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b-5" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-28ae95b" value="true" />
|
||||
<!-- End: Package sources from dotnet-windowsdesktop -->
|
||||
<!-- End: Package sources from dotnet-runtime -->
|
||||
<!-- Begin: Package sources from dotnet-templating -->
|
||||
<add key="darc-int-dotnet-templating-89f5155-1" value="true" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-2" value="true" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-3" value="true" />
|
||||
<add key="darc-int-dotnet-templating-89f5155-5" value="true" />
|
||||
<add key="darc-int-dotnet-templating-89f5155" value="true" />
|
||||
<!-- End: Package sources from dotnet-templating -->
|
||||
<!-- Begin: Package sources from dotnet-windowsdesktop -->
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-1" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-2" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-3" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68-5" value="true" />
|
||||
<add key="darc-int-dotnet-windowsdesktop-ef2ca68" value="true" />
|
||||
<!-- End: Package sources from dotnet-windowsdesktop -->
|
||||
<!-- Begin: Package sources from dotnet-windowsdesktop -->
|
||||
<!-- End: Package sources from dotnet-windowsdesktop -->
|
||||
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
|
||||
<add key="darc-int-dotnet-tools-internal" value="true" />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
|
|
787
README.md
787
README.md
|
@ -1,6 +1,5 @@
|
|||
# .NET Core SDK
|
||||
# .NET SDK Installers
|
||||
|
||||
[![Join the chat at https://gitter.im/dotnet/cli](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[![GitHub release](https://img.shields.io/github/release/dotnet/installer.svg)](https://GitHub.com/dotnet/installer/releases/)
|
||||
[![GitHub repo size](https://img.shields.io/github/repo-size/dotnet/installer)](https://github.com/dotnet/installer)
|
||||
[![GitHub issues-opened](https://img.shields.io/github/issues/dotnet/installer.svg)](https://GitHub.com/dotnet/installer/issues?q=is%3Aissue+is%3Aopened)
|
||||
|
@ -9,15 +8,24 @@
|
|||
[![GitHub pulls-merged](https://img.shields.io/github/issues-search/dotnet/installer?label=merged%20pull%20requests&query=is%3Apr%20is%3Aclosed%20is%3Amerged&color=darkviolet)](https://github.com/dotnet/installer/pulls?q=is%3Apr+is%3Aclosed+is%3Amerged)
|
||||
[![GitHub pulls-unmerged](https://img.shields.io/github/issues-search/dotnet/installer?label=unmerged%20pull%20requests&query=is%3Apr%20is%3Aclosed%20is%3Aunmerged&color=red)](https://github.com/dotnet/installer/pulls?q=is%3Apr+is%3Aclosed+is%3Aunmerged)
|
||||
[![GitHub contributors](https://img.shields.io/github/contributors/dotnet/installer.svg)](https://GitHub.com/dotnet/installer/graphs/contributors/)
|
||||
[![Commit Activity](https://img.shields.io/github/commit-activity/m/badges/shields)]()
|
||||
[![Commit Activity](https://img.shields.io/github/commit-activity/m/dotnet/installer)]()
|
||||
|
||||
This repo contains the source code for the cross-platform [.NET](http://github.com/dotnet/core) SDK. It aggregates the .NET toolchain, the .NET runtime, the templates, and the .NET Windows Desktop runtime. It produces zip, tarballs, and native packages for various supported platforms.
|
||||
|
||||
This repo contains the source code for the cross-platform [.NET Core](http://github.com/dotnet/core) SDK. It aggregates the .NET Toolchain, the .NET Core runtime, the templates, and the .NET Core Windows Desktop runtime. It produces zip, tarballs, and native packages for various supported platforms.
|
||||
|
||||
Looking for released versions of the .NET Core tooling?
|
||||
Looking for released versions of the .NET tooling?
|
||||
----------------------------------------
|
||||
|
||||
Download released versions of the .NET Core tools (CLI, MSBuild and the new csproj) at https://dot.net/core.
|
||||
The links below are for preview versions of .NET tooling. Prefer to use released versions of the .NET tools? Go to https://dot.net/download.
|
||||
|
||||
Looking for .NET Framework downloads?
|
||||
----------------------------------------
|
||||
|
||||
.NET Framework is the product from which the .NET Core project originated. .NET Core (mostly just called ".NET" here) adds many features and improvements and supports many more platforms than .NET Framework. .NET Framework remains fully supported and you can find the downloads on the [.NET website](https://dotnet.microsoft.com/download/dotnet-framework). For new projects, we recommend you use .NET Core.
|
||||
|
||||
Want to contribute or find out more about the .NET project?
|
||||
----------------------------------------
|
||||
|
||||
This repo is for the installers. Most of the implementation is in other repos, such as the [dotnet/runtime repo](https://github.com/dotnet/runtime) or the [dotnet/aspnetcore repo](https://github.com/dotnet/aspnetcore) and [many others](https://github.com/dotnet/core/blob/main/Documentation/core-repos.md). We welcome you to join us there!
|
||||
|
||||
Found an issue?
|
||||
---------------
|
||||
|
@ -25,7 +33,7 @@ You can consult the [Documents Index for the SDK repo](https://github.com/dotnet
|
|||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
|
||||
|
||||
# Build .NET installer
|
||||
# Build .NET installer
|
||||
|
||||
The repository contains native code project required for the Windows installer. If you intend to build it locally on Windows, you will need to ensure that you have the following items installed.
|
||||
- Install CMAKE 3.21.0 is required if you're building VS 17.0. Make sure to add CMAKE to your PATH (the installer will prompt you).
|
||||
|
@ -43,15 +51,30 @@ Please see the [dotnet/source-build](https://github.com/dotnet/source-build) rep
|
|||
|
||||
## Support
|
||||
|
||||
.NET Source-Build is supported on the oldest available .NET SDK feature update, and on Linux only.
|
||||
For example, if both .NET 6.0.1XX and 6.0.2XX feature updates are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/6.0), Source-Build will only support 6.0.1XX.
|
||||
.NET Source-Build is supported on the oldest available .NET SDK feature update for each major release, and on Linux only.
|
||||
For example, if .NET 6.0.1xx, 6.0.2xx, and 7.0.1xx feature updates are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/6.0), Source-Build will support 6.0.1xx and 7.0.1xx.
|
||||
For the latest information about Source-Build support for new .NET versions, please check our [GitHub Discussions page](https://github.com/dotnet/source-build/discussions) for announcements.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The dependencies for building .NET from source can be found [here](https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/linux-requirements.md).
|
||||
|
||||
## Building
|
||||
## Building .NET 8.0
|
||||
|
||||
.NET 8.0 (currently in prerelease) and newer will be built from the [dotnet/dotnet](https://github.com/dotnet/dotnet) repo.
|
||||
Clone the dotnet/dotnet repo and check out the tag for the desired release.
|
||||
Then, follow the instructions in [dotnet/dotnet's README](https://github.com/dotnet/dotnet/blob/main/README.md#dev-instructions) to build .NET from source.
|
||||
|
||||
### Codespaces
|
||||
|
||||
It is also possible to utilize [GitHub Codespaces](https://github.com/features/codespaces) and build .NET from the `dotnet/dotnet` repository from source that way.
|
||||
You can either create a Codespace in `dotnet/dotnet` directly or you can also make one from a PR branch in `dotnet/installer`. This will give you an environment with the VMR checked out and containing all of new changes from the PR.
|
||||
This can be especially valuable for investigations of source-build failures during PRs.
|
||||
|
||||
To create a Codespace for a `dotnet/installer` PR, use the `vmr-source-build` devcontainer configuration (select this when "newing the Codespace with options" under the three-dots-menu).
|
||||
Further instructions on how to build inside of the Codespace will be available upon launch.
|
||||
|
||||
## Building .NET 7.0 and .NET 6.0
|
||||
|
||||
1. Create a .NET source tarball.
|
||||
|
||||
|
@ -67,10 +90,8 @@ The dependencies for building .NET from source can be found [here](https://githu
|
|||
|
||||
```bash
|
||||
cd /path/to/complete/dotnet/sources
|
||||
./prep.sh
|
||||
./prep.sh --bootstrap
|
||||
```
|
||||
|
||||
On arm64, please use `./prep.sh --bootstrap` instead. This issue is being tracked [here](https://github.com/dotnet/source-build/issues/2758).
|
||||
|
||||
3. Build the .NET SDK
|
||||
|
||||
|
@ -79,7 +100,7 @@ The dependencies for building .NET from source can be found [here](https://githu
|
|||
```
|
||||
|
||||
This builds the entire .NET SDK from source.
|
||||
The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-6.0.100-fedora.33-x64.tar.gz`.
|
||||
The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-7.0.100-your-RID.tar.gz`.
|
||||
|
||||
Optionally add the `--online` flag to add online NuGet restore sources to the build.
|
||||
This is useful for testing unsupported releases that don't yet build without downloading pre-built binaries from the internet.
|
||||
|
@ -90,7 +111,7 @@ The dependencies for building .NET from source can be found [here](https://githu
|
|||
|
||||
```bash
|
||||
mkdir -p $HOME/dotnet
|
||||
tar zxf artifacts/x64/Release/dotnet-sdk-6.0.100-fedora.33-x64.tar.gz -C $HOME/dotnet
|
||||
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
|
||||
```
|
||||
|
||||
|
@ -104,498 +125,301 @@ The dependencies for building .NET from source can be found [here](https://githu
|
|||
|
||||
Visibility|All legs|
|
||||
|:------|:------|
|
||||
|Public|[![Status](https://dev.azure.com/dnceng/public/_apis/build/status/176)](https://dev.azure.com/dnceng/public/_build?definitionId=176)|
|
||||
|Public|[![Status](https://dev.azure.com/dnceng-public/public/_apis/build/status%2Fdotnet%2Finstaller%2Finstaller?branchName=main)](https://dev.azure.com/dnceng-public/public/_build/latest?definitionId=20&branchName=main)|
|
||||
|Microsoft Internal|[![Status](https://dev.azure.com/dnceng/internal/_apis/build/status/286)](https://dev.azure.com/dnceng/internal/_build?definitionId=286)|
|
||||
|
||||
Installers and Binaries
|
||||
-----------------------
|
||||
## Installers and Binaries
|
||||
|
||||
You can download the .NET Core SDK as either an installer (MSI, PKG) or a zip (zip, tar.gz). The .NET Core SDK contains both the .NET Core runtime and CLI tools.
|
||||
You can download the .NET SDK as either an installer (MSI, PKG) or a zip (zip, tar.gz). The .NET SDK contains both the .NET runtime and CLI tools.
|
||||
|
||||
**Note:** Be aware that the following installers are the **latest bits**. If you
|
||||
want to install the latest released versions, check out the [preceding section](#looking-for-released-versions-of-the-net-core-tooling).
|
||||
With development builds, internal NuGet feeds are necessary for some scenarios (for example, to acquire the runtime pack for self-contained apps). You can use the following NuGet.config to configure these feeds. See the following document [Configuring NuGet behavior](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) for more information on where to modify your NuGet.config to apply the changes.
|
||||
> Example:
|
||||
|
||||
**For .NET 6 builds**
|
||||
**For .NET 8 builds**
|
||||
|
||||
```
|
||||
```xml
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
**Note:** that you may need to add the dotnet5 feed for a short period of time while .NET transitions to .NET 6
|
||||
|
||||
**For .NET 6 Optional workloads**
|
||||
|
||||
We strongly recommend using `--skip-manifest-update` with `dotnet workload install` as otherwise you could pick up a random build of various workloads as we'll automatically update to the newest one available on the feed.
|
||||
|
||||
```
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="maui" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
|
||||
<add key="dotnet8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
**For .NET 5 builds**
|
||||
**For .NET 7 builds**
|
||||
|
||||
```
|
||||
```xml
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
||||
<add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
**For .NET 3.1 builds**
|
||||
Do not directly edit the table below. Use https://github.com/dotnet/installer/tree/main/tools/sdk-readme-table-generator to help you generate it. Make sure to run the table generator test and make any changes to the generator along with your changes to the table. Daily servicing builds aren't shown here because they may contain upcoming security fixes. All public servicing builds can be downloaded at http://aka.ms/dotnet-download.
|
||||
|
||||
```
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="dotnet3.1" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
### Table
|
||||
*Note* the 7.0.100 build will be finished internally. Below is the last public version available from that branch but is not fully updated with the final runtime.
|
||||
|
||||
Please do not directly edit the table below. Use https://github.com/dotnet/installer/tree/main/tools/sdk-readme-table-generator to help you generate it. Make sure to run the table generator test and make any changes to the generator along with your changes to the table.
|
||||
|
||||
| Platform | Release/6.0.1XX<br>(6.0.x Runtime) | Release/6.0.1XX-rc1<br>(6.0 Runtime) | Release/5.0.4XX<br>(5.0 Runtime) | Release/5.0.2XX<br>(5.0 Runtime) | Release/3.1.4XX<br>(3.1.x Runtime) | Release/3.1.1XX<br>(3.1.x Runtime) |
|
||||
| :--------- | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: |
|
||||
| **Windows x64** | [![][win-x64-badge-6.0.1XX]][win-x64-version-6.0.1XX]<br>[Installer][win-x64-installer-6.0.1XX] - [Checksum][win-x64-installer-checksum-6.0.1XX]<br>[zip][win-x64-zip-6.0.1XX] - [Checksum][win-x64-zip-checksum-6.0.1XX] | [![][win-x64-badge-6.0.1XX-rc1]][win-x64-version-6.0.1XX-rc1]<br>[Installer][win-x64-installer-6.0.1XX-rc1] - [Checksum][win-x64-installer-checksum-6.0.1XX-rc1]<br>[zip][win-x64-zip-6.0.1XX-rc1] - [Checksum][win-x64-zip-checksum-6.0.1XX-rc1] | [![][win-x64-badge-5.0.4XX]][win-x64-version-5.0.4XX]<br>[Installer][win-x64-installer-5.0.4XX] - [Checksum][win-x64-installer-checksum-5.0.4XX]<br>[zip][win-x64-zip-5.0.4XX] - [Checksum][win-x64-zip-checksum-5.0.4XX] | [![][win-x64-badge-5.0.2XX]][win-x64-version-5.0.2XX]<br>[Installer][win-x64-installer-5.0.2XX] - [Checksum][win-x64-installer-checksum-5.0.2XX]<br>[zip][win-x64-zip-5.0.2XX] - [Checksum][win-x64-zip-checksum-5.0.2XX] | [![][win-x64-badge-3.1.4XX]][win-x64-version-3.1.4XX]<br>[Installer][win-x64-installer-3.1.4XX] - [Checksum][win-x64-installer-checksum-3.1.4XX]<br>[zip][win-x64-zip-3.1.4XX] - [Checksum][win-x64-zip-checksum-3.1.4XX] | [![][win-x64-badge-3.1.1XX]][win-x64-version-3.1.1XX]<br>[Installer][win-x64-installer-3.1.1XX] - [Checksum][win-x64-installer-checksum-3.1.1XX]<br>[zip][win-x64-zip-3.1.1XX] - [Checksum][win-x64-zip-checksum-3.1.1XX] |
|
||||
| **Windows x86** | [![][win-x86-badge-6.0.1XX]][win-x86-version-6.0.1XX]<br>[Installer][win-x86-installer-6.0.1XX] - [Checksum][win-x86-installer-checksum-6.0.1XX]<br>[zip][win-x86-zip-6.0.1XX] - [Checksum][win-x86-zip-checksum-6.0.1XX] | [![][win-x86-badge-6.0.1XX-rc1]][win-x86-version-6.0.1XX-rc1]<br>[Installer][win-x86-installer-6.0.1XX-rc1] - [Checksum][win-x86-installer-checksum-6.0.1XX-rc1]<br>[zip][win-x86-zip-6.0.1XX-rc1] - [Checksum][win-x86-zip-checksum-6.0.1XX-rc1] | [![][win-x86-badge-5.0.4XX]][win-x86-version-5.0.4XX]<br>[Installer][win-x86-installer-5.0.4XX] - [Checksum][win-x86-installer-checksum-5.0.4XX]<br>[zip][win-x86-zip-5.0.4XX] - [Checksum][win-x86-zip-checksum-5.0.4XX] | [![][win-x86-badge-5.0.2XX]][win-x86-version-5.0.2XX]<br>[Installer][win-x86-installer-5.0.2XX] - [Checksum][win-x86-installer-checksum-5.0.2XX]<br>[zip][win-x86-zip-5.0.2XX] - [Checksum][win-x86-zip-checksum-5.0.2XX] | [![][win-x86-badge-3.1.4XX]][win-x86-version-3.1.4XX]<br>[Installer][win-x86-installer-3.1.4XX] - [Checksum][win-x86-installer-checksum-3.1.4XX]<br>[zip][win-x86-zip-3.1.4XX] - [Checksum][win-x86-zip-checksum-3.1.4XX] | [![][win-x86-badge-3.1.1XX]][win-x86-version-3.1.1XX]<br>[Installer][win-x86-installer-3.1.1XX] - [Checksum][win-x86-installer-checksum-3.1.1XX]<br>[zip][win-x86-zip-3.1.1XX] - [Checksum][win-x86-zip-checksum-3.1.1XX] |
|
||||
| **Windows arm** | **N/A** | **N/A** | **N/A** | **N/A** | [![][win-arm-badge-3.1.4XX]][win-arm-version-3.1.4XX]<br>[zip][win-arm-zip-3.1.4XX] - [Checksum][win-arm-zip-checksum-3.1.4XX] | [![][win-arm-badge-3.1.1XX]][win-arm-version-3.1.1XX]<br>[zip][win-arm-zip-3.1.1XX] - [Checksum][win-arm-zip-checksum-3.1.1XX] |
|
||||
| **Windows arm64** | [![][win-arm64-badge-6.0.1XX]][win-arm64-version-6.0.1XX]<br>[Installer][win-arm64-installer-6.0.1XX] - [Checksum][win-arm64-installer-checksum-6.0.1XX]<br>[zip][win-arm64-zip-6.0.1XX] | [![][win-arm64-badge-6.0.1XX-rc1]][win-arm64-version-6.0.1XX-rc1]<br>[Installer][win-arm64-installer-6.0.1XX-rc1] - [Checksum][win-arm64-installer-checksum-6.0.1XX-rc1]<br>[zip][win-arm64-zip-6.0.1XX-rc1] | [![][win-arm64-badge-5.0.4XX]][win-arm64-version-5.0.4XX]<br>[Installer][win-arm64-installer-5.0.4XX] - [Checksum][win-arm64-installer-checksum-5.0.4XX]<br>[zip][win-arm64-zip-5.0.4XX] | [![][win-arm64-badge-5.0.2XX]][win-arm64-version-5.0.2XX]<br>[Installer][win-arm64-installer-5.0.2XX] - [Checksum][win-arm64-installer-checksum-5.0.2XX]<br>[zip][win-arm64-zip-5.0.2XX] | **N/A** | **N/A** |
|
||||
| **macOS x64** | [![][osx-x64-badge-6.0.1XX]][osx-x64-version-6.0.1XX]<br>[Installer][osx-x64-installer-6.0.1XX] - [Checksum][osx-x64-installer-checksum-6.0.1XX]<br>[tar.gz][osx-x64-targz-6.0.1XX] - [Checksum][osx-x64-targz-checksum-6.0.1XX] | [![][osx-x64-badge-6.0.1XX-rc1]][osx-x64-version-6.0.1XX-rc1]<br>[Installer][osx-x64-installer-6.0.1XX-rc1] - [Checksum][osx-x64-installer-checksum-6.0.1XX-rc1]<br>[tar.gz][osx-x64-targz-6.0.1XX-rc1] - [Checksum][osx-x64-targz-checksum-6.0.1XX-rc1] | [![][osx-x64-badge-5.0.4XX]][osx-x64-version-5.0.4XX]<br>[Installer][osx-x64-installer-5.0.4XX] - [Checksum][osx-x64-installer-checksum-5.0.4XX]<br>[tar.gz][osx-x64-targz-5.0.4XX] - [Checksum][osx-x64-targz-checksum-5.0.4XX] | [![][osx-x64-badge-5.0.2XX]][osx-x64-version-5.0.2XX]<br>[Installer][osx-x64-installer-5.0.2XX] - [Checksum][osx-x64-installer-checksum-5.0.2XX]<br>[tar.gz][osx-x64-targz-5.0.2XX] - [Checksum][osx-x64-targz-checksum-5.0.2XX] | [![][osx-x64-badge-3.1.4XX]][osx-x64-version-3.1.4XX]<br>[Installer][osx-x64-installer-3.1.4XX] - [Checksum][osx-x64-installer-checksum-3.1.4XX]<br>[tar.gz][osx-x64-targz-3.1.4XX] - [Checksum][osx-x64-targz-checksum-3.1.4XX] | [![][osx-x64-badge-3.1.1XX]][osx-x64-version-3.1.1XX]<br>[Installer][osx-x64-installer-3.1.1XX] - [Checksum][osx-x64-installer-checksum-3.1.1XX]<br>[tar.gz][osx-x64-targz-3.1.1XX] - [Checksum][osx-x64-targz-checksum-3.1.1XX] |
|
||||
| **macOS arm64** | [![][osx-arm64-badge-6.0.1XX]][osx-arm64-version-6.0.1XX]<br>[Installer][osx-arm64-installer-6.0.1XX] - [Checksum][osx-arm64-installer-checksum-6.0.1XX]<br>[tar.gz][osx-arm64-targz-6.0.1XX] - [Checksum][osx-arm64-targz-checksum-6.0.1XX] | [![][osx-arm64-badge-6.0.1XX-rc1]][osx-arm64-version-6.0.1XX-rc1]<br>[Installer][osx-arm64-installer-6.0.1XX-rc1] - [Checksum][osx-arm64-installer-checksum-6.0.1XX-rc1]<br>[tar.gz][osx-arm64-targz-6.0.1XX-rc1] - [Checksum][osx-arm64-targz-checksum-6.0.1XX-rc1] | **N/A** | **N/A** | **N/A** | **N/A** |
|
||||
| **Linux x64** | [![][linux-badge-6.0.1XX]][linux-version-6.0.1XX]<br>[DEB Installer][linux-DEB-installer-6.0.1XX] - [Checksum][linux-DEB-installer-checksum-6.0.1XX]<br>[RPM Installer][linux-RPM-installer-6.0.1XX] - [Checksum][linux-RPM-installer-checksum-6.0.1XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-6.0.1XX] - [Checksum][linux-targz-checksum-6.0.1XX] | [![][linux-badge-6.0.1XX-rc1]][linux-version-6.0.1XX-rc1]<br>[DEB Installer][linux-DEB-installer-6.0.1XX-rc1] - [Checksum][linux-DEB-installer-checksum-6.0.1XX-rc1]<br>[RPM Installer][linux-RPM-installer-6.0.1XX-rc1] - [Checksum][linux-RPM-installer-checksum-6.0.1XX-rc1]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-6.0.1XX-rc1] - [Checksum][linux-targz-checksum-6.0.1XX-rc1] | [![][linux-badge-5.0.4XX]][linux-version-5.0.4XX]<br>[DEB Installer][linux-DEB-installer-5.0.4XX] - [Checksum][linux-DEB-installer-checksum-5.0.4XX]<br>[RPM Installer][linux-RPM-installer-5.0.4XX] - [Checksum][linux-RPM-installer-checksum-5.0.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-5.0.4XX] - [Checksum][linux-targz-checksum-5.0.4XX] | [![][linux-badge-5.0.2XX]][linux-version-5.0.2XX]<br>[DEB Installer][linux-DEB-installer-5.0.2XX] - [Checksum][linux-DEB-installer-checksum-5.0.2XX]<br>[RPM Installer][linux-RPM-installer-5.0.2XX] - [Checksum][linux-RPM-installer-checksum-5.0.2XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-5.0.2XX] - [Checksum][linux-targz-checksum-5.0.2XX] | [![][linux-badge-3.1.4XX]][linux-version-3.1.4XX]<br>[DEB Installer][linux-DEB-installer-3.1.4XX] - [Checksum][linux-DEB-installer-checksum-3.1.4XX]<br>[RPM Installer][linux-RPM-installer-3.1.4XX] - [Checksum][linux-RPM-installer-checksum-3.1.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-3.1.4XX] - [Checksum][linux-targz-checksum-3.1.4XX] | [![][linux-badge-3.1.1XX]][linux-version-3.1.1XX]<br>[DEB Installer][linux-DEB-installer-3.1.1XX] - [Checksum][linux-DEB-installer-checksum-3.1.1XX]<br>[RPM Installer][linux-RPM-installer-3.1.1XX] - [Checksum][linux-RPM-installer-checksum-3.1.1XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-3.1.1XX] - [Checksum][linux-targz-checksum-3.1.1XX] |
|
||||
| **Linux arm** | [![][linux-arm-badge-6.0.1XX]][linux-arm-version-6.0.1XX]<br>[tar.gz][linux-arm-targz-6.0.1XX] - [Checksum][linux-arm-targz-checksum-6.0.1XX] | [![][linux-arm-badge-6.0.1XX-rc1]][linux-arm-version-6.0.1XX-rc1]<br>[tar.gz][linux-arm-targz-6.0.1XX-rc1] - [Checksum][linux-arm-targz-checksum-6.0.1XX-rc1] | [![][linux-arm-badge-5.0.4XX]][linux-arm-version-5.0.4XX]<br>[tar.gz][linux-arm-targz-5.0.4XX] - [Checksum][linux-arm-targz-checksum-5.0.4XX] | [![][linux-arm-badge-5.0.2XX]][linux-arm-version-5.0.2XX]<br>[tar.gz][linux-arm-targz-5.0.2XX] - [Checksum][linux-arm-targz-checksum-5.0.2XX] | [![][linux-arm-badge-3.1.4XX]][linux-arm-version-3.1.4XX]<br>[tar.gz][linux-arm-targz-3.1.4XX] - [Checksum][linux-arm-targz-checksum-3.1.4XX] | [![][linux-arm-badge-3.1.1XX]][linux-arm-version-3.1.1XX]<br>[tar.gz][linux-arm-targz-3.1.1XX] - [Checksum][linux-arm-targz-checksum-3.1.1XX] |
|
||||
| **Linux arm64** | [![][linux-arm64-badge-6.0.1XX]][linux-arm64-version-6.0.1XX]<br>[tar.gz][linux-arm64-targz-6.0.1XX] - [Checksum][linux-arm64-targz-checksum-6.0.1XX] | [![][linux-arm64-badge-6.0.1XX-rc1]][linux-arm64-version-6.0.1XX-rc1]<br>[tar.gz][linux-arm64-targz-6.0.1XX-rc1] - [Checksum][linux-arm64-targz-checksum-6.0.1XX-rc1] | [![][linux-arm64-badge-5.0.4XX]][linux-arm64-version-5.0.4XX]<br>[tar.gz][linux-arm64-targz-5.0.4XX] - [Checksum][linux-arm64-targz-checksum-5.0.4XX] | [![][linux-arm64-badge-5.0.2XX]][linux-arm64-version-5.0.2XX]<br>[tar.gz][linux-arm64-targz-5.0.2XX] - [Checksum][linux-arm64-targz-checksum-5.0.2XX] | [![][linux-arm64-badge-3.1.4XX]][linux-arm64-version-3.1.4XX]<br>[tar.gz][linux-arm64-targz-3.1.4XX] - [Checksum][linux-arm64-targz-checksum-3.1.4XX] | [![][linux-arm64-badge-3.1.1XX]][linux-arm64-version-3.1.1XX]<br>[tar.gz][linux-arm64-targz-3.1.1XX] - [Checksum][linux-arm64-targz-checksum-3.1.1XX] |
|
||||
| **Linux-musl-x64** | [![][linux-musl-x64-badge-6.0.1XX]][linux-musl-x64-version-6.0.1XX]<br>[tar.gz][linux-musl-x64-targz-6.0.1XX] - [Checksum][linux-musl-x64-targz-checksum-6.0.1XX] | [![][linux-musl-x64-badge-6.0.1XX-rc1]][linux-musl-x64-version-6.0.1XX-rc1]<br>[tar.gz][linux-musl-x64-targz-6.0.1XX-rc1] - [Checksum][linux-musl-x64-targz-checksum-6.0.1XX-rc1] | [![][linux-musl-x64-badge-5.0.4XX]][linux-musl-x64-version-5.0.4XX]<br>[tar.gz][linux-musl-x64-targz-5.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-5.0.4XX] | [![][linux-musl-x64-badge-5.0.2XX]][linux-musl-x64-version-5.0.2XX]<br>[tar.gz][linux-musl-x64-targz-5.0.2XX] - [Checksum][linux-musl-x64-targz-checksum-5.0.2XX] | [![][linux-musl-x64-badge-3.1.4XX]][linux-musl-x64-version-3.1.4XX]<br>[tar.gz][linux-musl-x64-targz-3.1.4XX] - [Checksum][linux-musl-x64-targz-checksum-3.1.4XX] | [![][linux-musl-x64-badge-3.1.1XX]][linux-musl-x64-version-3.1.1XX]<br>[tar.gz][linux-musl-x64-targz-3.1.1XX] - [Checksum][linux-musl-x64-targz-checksum-3.1.1XX] |
|
||||
| **Linux-musl-arm** | [![][linux-musl-arm-badge-6.0.1XX]][linux-musl-arm-version-6.0.1XX]<br>[tar.gz][linux-musl-arm-targz-6.0.1XX] - [Checksum][linux-musl-arm-targz-checksum-6.0.1XX] | [![][linux-musl-arm-badge-6.0.1XX-rc1]][linux-musl-arm-version-6.0.1XX-rc1]<br>[tar.gz][linux-musl-arm-targz-6.0.1XX-rc1] - [Checksum][linux-musl-arm-targz-checksum-6.0.1XX-rc1] | [![][linux-musl-arm-badge-5.0.4XX]][linux-musl-arm-version-5.0.4XX]<br>[tar.gz][linux-musl-arm-targz-5.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-5.0.4XX] | [![][linux-musl-arm-badge-5.0.2XX]][linux-musl-arm-version-5.0.2XX]<br>[tar.gz][linux-musl-arm-targz-5.0.2XX] - [Checksum][linux-musl-arm-targz-checksum-5.0.2XX] | **N/A** | **N/A** |
|
||||
| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-6.0.1XX]][linux-musl-arm64-version-6.0.1XX]<br>[tar.gz][linux-musl-arm64-targz-6.0.1XX] - [Checksum][linux-musl-arm64-targz-checksum-6.0.1XX] | [![][linux-musl-arm64-badge-6.0.1XX-rc1]][linux-musl-arm64-version-6.0.1XX-rc1]<br>[tar.gz][linux-musl-arm64-targz-6.0.1XX-rc1] - [Checksum][linux-musl-arm64-targz-checksum-6.0.1XX-rc1] | [![][linux-musl-arm64-badge-5.0.4XX]][linux-musl-arm64-version-5.0.4XX]<br>[tar.gz][linux-musl-arm64-targz-5.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-5.0.4XX] | [![][linux-musl-arm64-badge-5.0.2XX]][linux-musl-arm64-version-5.0.2XX]<br>[tar.gz][linux-musl-arm64-targz-5.0.2XX] - [Checksum][linux-musl-arm64-targz-checksum-5.0.2XX] | **N/A** | **N/A** |
|
||||
| **RHEL 6** | **N/A** | **N/A** | **N/A** | **N/A** | [![][rhel-6-badge-3.1.4XX]][rhel-6-version-3.1.4XX]<br>[tar.gz][rhel-6-targz-3.1.4XX] - [Checksum][rhel-6-targz-checksum-3.1.4XX] | [![][rhel-6-badge-3.1.1XX]][rhel-6-version-3.1.1XX]<br>[tar.gz][rhel-6-targz-3.1.1XX] - [Checksum][rhel-6-targz-checksum-3.1.1XX] |
|
||||
| Platform | main<br>(8.0.x Runtime) | 8.0.1xx-preview7<br>(8.0-preview7 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-8.0.1XX-preview7]][win-x64-version-8.0.1XX-preview7]<br>[Installer][win-x64-installer-8.0.1XX-preview7] - [Checksum][win-x64-installer-checksum-8.0.1XX-preview7]<br>[zip][win-x64-zip-8.0.1XX-preview7] - [Checksum][win-x64-zip-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][win-x86-version-8.0.1XX-preview7]<br>[Installer][win-x86-installer-8.0.1XX-preview7] - [Checksum][win-x86-installer-checksum-8.0.1XX-preview7]<br>[zip][win-x86-zip-8.0.1XX-preview7] - [Checksum][win-x86-zip-checksum-8.0.1XX-preview7] | [![][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** |
|
||||
| **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-8.0.1XX-preview7]][win-arm64-version-8.0.1XX-preview7]<br>[Installer][win-arm64-installer-8.0.1XX-preview7] - [Checksum][win-arm64-installer-checksum-8.0.1XX-preview7]<br>[zip][win-arm64-zip-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][osx-x64-version-8.0.1XX-preview7]<br>[Installer][osx-x64-installer-8.0.1XX-preview7] - [Checksum][osx-x64-installer-checksum-8.0.1XX-preview7]<br>[tar.gz][osx-x64-targz-8.0.1XX-preview7] - [Checksum][osx-x64-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][osx-arm64-version-8.0.1XX-preview7]<br>[Installer][osx-arm64-installer-8.0.1XX-preview7] - [Checksum][osx-arm64-installer-checksum-8.0.1XX-preview7]<br>[tar.gz][osx-arm64-targz-8.0.1XX-preview7] - [Checksum][osx-arm64-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-version-8.0.1XX-preview7]<br>[DEB Installer][linux-DEB-installer-8.0.1XX-preview7] - [Checksum][linux-DEB-installer-checksum-8.0.1XX-preview7]<br>[RPM Installer][linux-RPM-installer-8.0.1XX-preview7] - [Checksum][linux-RPM-installer-checksum-8.0.1XX-preview7]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-8.0.1XX-preview7] - [Checksum][linux-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-arm-version-8.0.1XX-preview7]<br>[tar.gz][linux-arm-targz-8.0.1XX-preview7] - [Checksum][linux-arm-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-arm64-version-8.0.1XX-preview7]<br>[tar.gz][linux-arm64-targz-8.0.1XX-preview7] - [Checksum][linux-arm64-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-musl-x64-version-8.0.1XX-preview7]<br>[tar.gz][linux-musl-x64-targz-8.0.1XX-preview7] - [Checksum][linux-musl-x64-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-musl-arm-version-8.0.1XX-preview7]<br>[tar.gz][linux-musl-arm-targz-8.0.1XX-preview7] - [Checksum][linux-musl-arm-targz-checksum-8.0.1XX-preview7] | [![][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-8.0.1XX-preview7]][linux-musl-arm64-version-8.0.1XX-preview7]<br>[tar.gz][linux-musl-arm64-targz-8.0.1XX-preview7] - [Checksum][linux-musl-arm64-targz-checksum-8.0.1XX-preview7] | [![][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** |
|
||||
|
||||
Reference notes:
|
||||
> **1**: Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing the SDK from the .deb file (via dpkg or similar), then you'll need to install the corresponding dependencies first:
|
||||
> * [Host, Host FX Resolver, and Shared Framework](https://github.com/dotnet/runtime#daily-builds)
|
||||
> * [Host, Host FX Resolver, and Shared Framework](https://github.com/dotnet/runtime/blob/main/docs/project/dogfooding.md#nightly-builds-table)
|
||||
> * [ASP.NET Core Shared Framework](https://github.com/aspnet/AspNetCore/blob/main/docs/DailyBuilds.md)
|
||||
|
||||
.NET Core SDK 2.x downloads can be found here: [.NET Core SDK 2.x Installers and Binaries](Downloads2.x.md)
|
||||
|
||||
[win-x64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-win-x64.txt
|
||||
[win-x64-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[win-x64-installer-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x64.exe
|
||||
[win-x64-installer-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x64.exe.sha
|
||||
[win-x64-zip-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x64.zip
|
||||
[win-x64-zip-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/win_x64_Release_version_badge.svg
|
||||
[win-x64-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[win-x64-installer-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x64.exe
|
||||
[win-x64-installer-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x64.exe.sha
|
||||
[win-x64-zip-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x64.zip
|
||||
[win-x64-zip-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x64.zip.sha
|
||||
|
||||
[win-x86-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-win-x86.txt
|
||||
[win-x86-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[win-x86-installer-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x86.exe
|
||||
[win-x86-installer-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x86.exe.sha
|
||||
[win-x86-zip-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x86.zip
|
||||
[win-x86-zip-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/win_x86_Release_version_badge.svg
|
||||
[win-x86-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[win-x86-installer-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x86.exe
|
||||
[win-x86-installer-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x86.exe.sha
|
||||
[win-x86-zip-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x86.zip
|
||||
[win-x86-zip-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-x86.zip.sha
|
||||
|
||||
[osx-x64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[osx-x64-installer-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-osx-x64.pkg.sha
|
||||
[osx-x64-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-osx-x64.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/osx_x64_Release_version_badge.svg
|
||||
[osx-x64-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[osx-x64-installer-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-osx-x64.pkg.sha
|
||||
[osx-x64-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-osx-x64.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/osx_arm64_Release_version_badge.svg
|
||||
[osx-arm64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/osx_arm64_Release_version_badge.svg
|
||||
[osx-arm64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[linux-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_x64_Release_version_badge.svg
|
||||
[linux-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_x64_Release_version_badge.svg
|
||||
[linux-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_x64_Release_version_badge.svg
|
||||
[linux-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_x64_Release_version_badge.svg
|
||||
[linux-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/linux_x64_Release_version_badge.svg
|
||||
[linux-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[linux-DEB-installer-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-x64.deb
|
||||
[linux-DEB-installer-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-x64.deb.sha
|
||||
[linux-RPM-installer-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-x64.rpm
|
||||
[linux-RPM-installer-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-x64.rpm.sha
|
||||
[linux-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-x64.tar.gz
|
||||
[linux-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/linux_x64_Release_version_badge.svg
|
||||
[linux-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[linux-DEB-installer-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-x64.deb
|
||||
[linux-DEB-installer-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-x64.deb.sha
|
||||
[linux-RPM-installer-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-x64.rpm
|
||||
[linux-RPM-installer-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-x64.rpm.sha
|
||||
[linux-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-x64.tar.gz
|
||||
[linux-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[linux-arm-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/linux_arm_Release_version_badge.svg
|
||||
[linux-arm-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[linux-arm-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[linux-arm64-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/linux_arm64_Release_version_badge.svg
|
||||
[linux-arm64-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[linux-arm64-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[rhel-6-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/rhel.6_x64_Release_version_badge.svg
|
||||
[rhel-6-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[rhel-6-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[linux-musl-x64-targz-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/linux_musl_x64_Release_version_badge.svg
|
||||
[linux-musl-x64-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[linux-musl-x64-targz-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_musl_arm_Release_version_badge.svg
|
||||
[linux-musl-arm-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_musl_arm_Release_version_badge.svg
|
||||
[linux-musl-arm-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_musl_arm_Release_version_badge.svg
|
||||
[linux-musl-arm-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_musl_arm_Release_version_badge.svg
|
||||
[linux-musl-arm-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/linux_musl_arm64_Release_version_badge.svg
|
||||
[linux-musl-arm64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/linux_musl_arm64_Release_version_badge.svg
|
||||
[linux-musl-arm64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/linux_musl_arm64_Release_version_badge.svg
|
||||
[linux-musl-arm64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/linux_musl_arm64_Release_version_badge.svg
|
||||
[linux-musl-arm64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[win-arm-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-win-arm.txt
|
||||
[win-arm-zip-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/latest.version
|
||||
[win-arm-zip-3.1.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-arm.zip
|
||||
[win-arm-zip-checksum-3.1.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.4xx/dotnet-sdk-latest-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/win_arm_Release_version_badge.svg
|
||||
[win-arm-version-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/latest.version
|
||||
[win-arm-zip-3.1.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-arm.zip
|
||||
[win-arm-zip-checksum-3.1.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.1.1xx/dotnet-sdk-latest-win-arm.zip.sha
|
||||
|
||||
[win-arm64-badge-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/win_arm64_Release_version_badge.svg
|
||||
[win-arm64-version-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-6.0.1XX]: https://aka.ms/dotnet/6.0/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/win_arm64_Release_version_badge.svg
|
||||
[win-arm64-version-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-6.0.1XX-rc1]: https://aka.ms/dotnet/6.0.1XX-rc1/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/win_arm64_Release_version_badge.svg
|
||||
[win-arm64-version-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-5.0.4XX]: https://aka.ms/dotnet/5.0.4xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/win_arm64_Release_version_badge.svg
|
||||
[win-arm64-version-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-5.0.2XX]: https://aka.ms/dotnet/5.0.2xx/daily/Sdk/dotnet-sdk-win-arm64.zip.sha
|
||||
.NET Core SDK 2.x downloads can be found at [.NET Core SDK 2.x Installers and Binaries](Downloads2.x.md) but they are [out of support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
|
||||
|
||||
[win-x64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x86-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[osx-x64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[linux-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[win-arm-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm64-badge-main]: https://aka.ms/dotnet/8.0.1xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-main]: https://aka.ms/dotnet/8.0.1xx/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-main]: https://aka.ms/dotnet/8.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-8.0.1XX-preview7]: https://aka.ms/dotnet/8.0.1xx-preview7/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[sdk-shas-2.2.1XX]: https://github.com/dotnet/versions/tree/master/build-info/dotnet/product/cli/release/2.2#built-repositories
|
||||
|
||||
|
@ -607,10 +431,11 @@ Sources for dotnet-install.sh and dotnet-install.ps1 are in the [install-scripts
|
|||
Questions & Comments
|
||||
--------------------
|
||||
|
||||
For all feedback, use the Issues on the [.NET CLI](https://github.com/dotnet/cli) repository.
|
||||
For all feedback, use the Issues on the [.NET SDK](https://github.com/dotnet/sdk) repository.
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
By downloading the .zip you are agreeing to the terms in the project [EULA](https://aka.ms/dotnet-core-eula).
|
||||
The .NET project uses the [MIT license](LICENSE).
|
||||
|
||||
The LICENSE and ThirdPartyNotices in any downloaded archives are authoritative.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetPlatformIdentifier>Windows</TargetPlatformIdentifier>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
17
build.sh
17
build.sh
|
@ -29,11 +29,6 @@ args=
|
|||
while [[ $# > 0 ]]; do
|
||||
lowerI="$(echo $1 | awk '{print tolower($0)}')"
|
||||
case $lowerI in
|
||||
--docker)
|
||||
export BUILD_IN_DOCKER=1
|
||||
export DOCKER_IMAGENAME=$2
|
||||
shift
|
||||
;;
|
||||
--noprettyprint)
|
||||
export DOTNET_CORESDK_NOPRETTYPRINT=1
|
||||
;;
|
||||
|
@ -44,14 +39,4 @@ while [[ $# > 0 ]]; do
|
|||
shift
|
||||
done
|
||||
|
||||
dockerbuild()
|
||||
{
|
||||
BUILD_COMMAND=$DIR/run-build.sh $DIR/eng/dockerrun.sh --non-interactive "$@"
|
||||
}
|
||||
|
||||
# Check if we need to build in docker
|
||||
if [ ! -z "$BUILD_IN_DOCKER" ]; then
|
||||
dockerbuild $args
|
||||
else
|
||||
$DIR/run-build.sh $args
|
||||
fi
|
||||
$DIR/run-build.sh $args
|
||||
|
|
24
eng/AfterSigning.targets
Normal file
24
eng/AfterSigning.targets
Normal file
|
@ -0,0 +1,24 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<_SuppressSdkImports>false</_SuppressSdkImports>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="PopulateGenerateChecksumItems"
|
||||
AfterTargets="Build"
|
||||
BeforeTargets="GenerateChecksums" >
|
||||
|
||||
<ItemGroup>
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.msi" />
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.exe" />
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.zip" Exclude="$(ArtifactsShippingPackagesDir)**\*.wixpack.zip" />
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.tar.gz" />
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.deb" />
|
||||
<InstallerFiles Include="$(ArtifactsShippingPackagesDir)**\*.rpm" />
|
||||
<GenerateChecksumItems Include="%(InstallerFiles.Identity)" >
|
||||
<DestinationPath>%(FullPath).sha512</DestinationPath>
|
||||
</GenerateChecksumItems>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
</Project>
|
|
@ -1,12 +1,21 @@
|
|||
<Project>
|
||||
<ItemGroup Condition=" '$(ArcadeBuildTarball)' != 'true' ">
|
||||
<ProjectToBuild Include="$(RepoRoot)Microsoft.DotNet.Cli.sln" />
|
||||
<ProjectToBuild Condition="'$(OS)' == 'Windows_NT' And ('$(Architecture)' == 'x86' Or '$(Architecture)' == 'x64' Or '$(Architecture)' == 'arm64')"
|
||||
Include="$(RepoRoot)eng\version.csproj;
|
||||
$(RepoRoot)eng\native.proj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(ArcadeBuildTarball)' == 'true' " >
|
||||
<ProjectToBuild Include="$(RepoRoot)src/SourceBuild/Arcade/src/SourceBuild.Tasks.csproj" BuildInParallel="false" />
|
||||
<ProjectToBuild Include="$(RepoRoot)src/SourceBuild/tarball/BuildSourceBuildTarball.proj" BuildInParallel="false" />
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition=" '$(InitializeVMR)' == 'true' ">
|
||||
<!-- VMR bootstrap -->
|
||||
<ItemGroup>
|
||||
<ProjectToBuild Include="$(RepoRoot)src/VirtualMonoRepo/Tasks/VirtualMonoRepo.Tasks.csproj" BuildInParallel="false" />
|
||||
<ProjectToBuild Include="$(RepoRoot)src/VirtualMonoRepo/InitializeVMR.proj" BuildInParallel="false" />
|
||||
</ItemGroup>
|
||||
</When>
|
||||
|
||||
<Otherwise>
|
||||
<!-- Regular build -->
|
||||
<ItemGroup>
|
||||
<ProjectToBuild Include="$(RepoRoot)Microsoft.DotNet.Cli.sln" />
|
||||
<ProjectToBuild Condition="'$(OS)' == 'Windows_NT' And ('$(Architecture)' == 'x86' Or '$(Architecture)' == 'x64' Or '$(Architecture)' == 'arm64' Or '$(Architecture)' == 'arm')"
|
||||
Include="$(RepoRoot)eng\version.csproj;
|
||||
$(RepoRoot)eng\native.proj" />
|
||||
</ItemGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
</Project>
|
||||
|
|
|
@ -8,8 +8,11 @@
|
|||
<PropertyGroup>
|
||||
<Product>Sdk</Product>
|
||||
<BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath>
|
||||
|
||||
<PublishBinariesAndBadge Condition=" '$(PublishBinariesAndBadge)' == '' ">true</PublishBinariesAndBadge>
|
||||
<!-- Installer doesn't produce any interesting binaries that need a symbol package generated in
|
||||
parallel to the regular package. This avoids creating VS.*.symbols.nupkg packages that
|
||||
are identical to the original package. -->
|
||||
<AutoGenerateSymbolPackages>false</AutoGenerateSymbolPackages>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Pulled from arcade's publish.proj see https://github.com/dotnet/arcade/issues/5790 for
|
||||
|
@ -72,18 +75,23 @@
|
|||
Condition=" '$(PublishBinariesAndBadge)' == 'true' and '$(OS)' == 'Windows_NT' and '$(Architecture)' == 'x64' and '$(PgoInstrument)' != 'true'" />
|
||||
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)sdk-productVersion.txt"
|
||||
Condition=" '$(PublishBinariesAndBadge)' == 'true' and '$(OS)' == 'Windows_NT' and '$(Architecture)' == 'x64' and '$(PgoInstrument)' != 'true'" />
|
||||
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)productCommit-*.json" Condition=" '$(PublishBinariesAndBadge)' == 'true' " />
|
||||
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)productCommit-*.txt" Condition=" '$(PublishBinariesAndBadge)' == 'true' " />
|
||||
<SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.swr" />
|
||||
<SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.msi" />
|
||||
<SdkNonShippingAssetsToPublish Condition="'$(PublishBinariesAndBadge)' != 'false'" Include="$(ArtifactsNonShippingPackagesDir)*.tar.gz" />
|
||||
<WixPacksToPublish Include="$(ArtifactsNonShippingPackagesDir)*.wixpack.zip" />
|
||||
<SdkNonShippingAssetsToPublish Condition="'$(PublishBinariesAndBadge)' != 'false'" Include="$(ArtifactsNonShippingPackagesDir)*.zip" />
|
||||
<!-- Remove wixpacks if not doing post-build signing, since they are not needed -->
|
||||
<SdkNonShippingAssetsToPublish Remove="@(WixPacksToPublish)" Condition="'$(PostBuildSign)' != 'true'" />
|
||||
<SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.pkg" />
|
||||
<CheckSumsToPublish Include="$(ArtifactsShippingPackagesDir)*.sha" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)productCommit-*.txt.sha" Condition=" '$(PublishBinariesAndBadge)' == 'false'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)productVersion.txt.sha" Condition=" '$(OS)' != 'Windows_NT' or '$(Architecture)' != 'x64'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)sdk-productVersion.txt.sha" Condition=" '$(OS)' != 'Windows_NT' or '$(Architecture)' != 'x64'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.zip.sha" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/>
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.tar.gz.sha" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/>
|
||||
<CheckSumsToPublish Include="$(ArtifactsShippingPackagesDir)*.sha512" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)productCommit-*.json.sha512" Condition=" '$(PublishBinariesAndBadge)' == 'false'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)productCommit-*.txt.sha512" Condition=" '$(PublishBinariesAndBadge)' == 'false'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)productVersion.txt.sha512" Condition=" '$(OS)' != 'Windows_NT' or '$(Architecture)' != 'x64'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)sdk-productVersion.txt.sha512" Condition=" '$(OS)' != 'Windows_NT' or '$(Architecture)' != 'x64'" />
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.zip.sha512" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/>
|
||||
<CheckSumsToPublish Remove="$(ArtifactsShippingPackagesDir)*.tar.gz.sha512" Condition=" '$(PublishBinariesAndBadge)' == 'false' "/>
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="PublishSdkAssetsAndChecksums"
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Do not sign non-shipping packages when doing in-build signing -->
|
||||
<ItemsToSign Remove="$(ArtifactsNonShippingPackagesDir)**\*.nupkg" Condition="'$(PostBuildSign)' != 'true'" />
|
||||
<!-- Remove the wixpacks from items to sign post build. These will be added explicitly by the
|
||||
custom publishing target. And should not be picked up by arcade's default publishing logic. -->
|
||||
<ItemsToSignPostBuild Remove="*.wixpack.zip" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(PostBuildSign)' != 'true'">
|
||||
<ItemsToSign Remove="@(ItemsToSign)" />
|
||||
<ItemsToSign Include="$(ArtifactsPackagesDir)**\*.exe" />
|
||||
<ItemsToSign Include="$(ArtifactsPackagesDir)**\*.zip" />
|
||||
<ItemsToSign Include="$(ArtifactsPackagesDir)**\*.msi" />
|
||||
<ItemsToSign Include="$(ArtifactsPackagesDir)**\*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ExternalCertificateId Condition="'$(ExternalCertificateId)' == ''">3PartySHA2</ExternalCertificateId>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
<!-- Whenever altering this or other Source Build files, please include @dotnet/source-build-internal as a reviewer. -->
|
||||
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
|
@ -11,6 +13,7 @@
|
|||
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeNuGetPackageArchive=false</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeAdditionalSharedFrameworks=false</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeSharedFrameworksForBackwardsCompatibilityTests=false</InnerBuildArgs>
|
||||
<InnerBuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(InnerBuildArgs) /p:DISABLE_CROSSGEN=true</InnerBuildArgs>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
<!-- Whenever altering this or other Source Build files, please include @dotnet/source-build-internal as a reviewer. -->
|
||||
<!-- See aka.ms/dotnet/prebuilts for guidance on what pre-builts are and how to eliminate them. -->
|
||||
|
||||
<UsageData>
|
||||
<IgnorePatterns>
|
||||
<UsagePattern IdentityGlob="*/*" />
|
||||
<UsagePattern IdentityGlob="Microsoft.SourceBuild.Intermediate.*/*" />
|
||||
|
||||
<!--
|
||||
Temporary exclusion for NuGet packages, since NuGet is not producing source-build intermediate package,
|
||||
see: https://github.com/NuGet/Home/issues/11059
|
||||
-->
|
||||
<UsagePattern IdentityGlob="NuGet.*/*" />
|
||||
|
||||
<!-- These are coming in via runtime but the source-build infra isn't able to automatically pick up the right intermediate. -->
|
||||
<UsagePattern IdentityGlob="Microsoft.NETCore.App.Crossgen2.linux-x64/*8.0.*" />
|
||||
</IgnorePatterns>
|
||||
</UsageData>
|
||||
|
|
|
@ -1,46 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Dependencies>
|
||||
<ProductDependencies>
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<!--
|
||||
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos.
|
||||
The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal.
|
||||
-->
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>ef2ca68feb305bd9ebc3934b8488526caee3d118</Sha>
|
||||
<Sha>28ae95bc8703be1ebc194391b03b6477cf59bed2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0" Version="6.0.32-servicing.24314.6" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0" Version="8.0.7-servicing.24314.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>ef2ca68feb305bd9ebc3934b8488526caee3d118</Sha>
|
||||
<Sha>28ae95bc8703be1ebc194391b03b6477cf59bed2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0" Version="6.0.32-servicing.24314.6" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0" Version="8.0.7-servicing.24314.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>ef2ca68feb305bd9ebc3934b8488526caee3d118</Sha>
|
||||
<Sha>28ae95bc8703be1ebc194391b03b6477cf59bed2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
|
||||
<Sha>ef2ca68feb305bd9ebc3934b8488526caee3d118</Sha>
|
||||
<Sha>28ae95bc8703be1ebc194391b03b6477cf59bed2</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.6.0" Version="6.0.32-servicing.24314.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.7-servicing.24313.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
<SourceBuild RepoName="runtime" ManagedOnly="false" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.6.0" Version="6.0.32-servicing.24314.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.8.0" Version="8.0.7-servicing.24313.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<SourceBuildTarball RepoName="runtime" ManagedOnly="true" />
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>e77011b31a3e5c47d931248a64b47f9b2d47853d</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</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. -->
|
||||
|
@ -48,182 +52,206 @@
|
|||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="8.0.7-servicing.24313.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>189fbbd88d97dd6d65515ba2da05b62eab4e5039</Sha>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="6.0.32-servicing.24314.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.7-servicing.24314.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="6.0.32" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<SourceBuildTarball RepoName="aspnetcore" ManagedOnly="true" />
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0" Version="6.0.32-servicing.24314.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0" Version="8.0.7-servicing.24314.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-dev-certs" Version="6.0.32-servicing.24314.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-dev-certs" Version="8.0.7-servicing.24314.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-secrets" Version="6.0.32-servicing.24314.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-jwts" Version="8.0.7-servicing.24314.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>fedc545ce86467b7d3413d906f1ab02fb3db12ff</Sha>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22207.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>9388790ba9ed8fef11584b2c74fe6789782a1592</Sha>
|
||||
<Dependency Name="dotnet-user-secrets" Version="8.0.7-servicing.24314.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
|
||||
<Sha>2f1db20456007c9515068a35a65afdf99af70bc6</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.5.0" Version="1.0.2-beta4.22207.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>9388790ba9ed8fef11584b2c74fe6789782a1592</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.6.0" Version="1.0.2-beta4.22207.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>9388790ba9ed8fef11584b2c74fe6789782a1592</Sha>
|
||||
<SourceBuild RepoName="test-templates" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="6.0.424" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-templating</Uri>
|
||||
<Sha>89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="6.0.424-rtm.24314.8" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-templating</Uri>
|
||||
<Sha>89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc</Sha>
|
||||
<SourceBuild RepoName="templating" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Common.ProjectTemplates.6.0" Version="6.0.424" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-templating</Uri>
|
||||
<Sha>89f5155bcd844b1a02d2be6b17caa0fb2dcf17bc</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="6.0.424-servicing.24315.2">
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="8.0.107">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>d1ba1897fb2799cf7a51bab3492c933a4fdad702</Sha>
|
||||
<Sha>289435f5c45053c7599cf237fefc8391d1eb7f0b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="8.0.107-servicing.24317.5">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>289435f5c45053c7599cf237fefc8391d1eb7f0b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="8.0.107-servicing.24317.5">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>289435f5c45053c7599cf237fefc8391d1eb7f0b</Sha>
|
||||
<SourceBuild RepoName="sdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="6.0.424-servicing.24315.2">
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="8.0.107-servicing.24317.5">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
|
||||
<Sha>d1ba1897fb2799cf7a51bab3492c933a4fdad702</Sha>
|
||||
<Sha>289435f5c45053c7599cf237fefc8391d1eb7f0b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>0385265f4d0b6413d64aea0223172366a9b9858c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.5.0" Version="1.1.0-rc.23410.2">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.6.0" Version="1.1.0-rc.23410.2">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.7.0" Version="1.1.0-rc.23410.2">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
|
||||
<SourceBuild RepoName="test-templates" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.8.0" Version="1.1.0-rc.23410.2">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
|
||||
</Dependency>
|
||||
<!-- For coherency purposes, these versions should be gated by the versions of winforms and wpf routed via windowsdesktop -->
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="6.0.32-servicing.24314.5" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="8.0.7-servicing.24313.8" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-winforms</Uri>
|
||||
<Sha>670045968593e524941ef480423796ceb50c5e2f</Sha>
|
||||
<Sha>fdc20074cf1e48b8cf11fe6ac78f255b1fbfe611</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="6.0.32-servicing.24314.4" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="8.0.7-servicing.24313.7" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-wpf</Uri>
|
||||
<Sha>798cc6d4922db482f84fb72a8244f0da898bc5d6</Sha>
|
||||
<Sha>43bb8cc831c2658e1117415019264bfe6f644f94</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.0.5-beta.22513.8" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>5d69143fbe992d8fa33d5b83d5fdd5f4ed7bb4fc</Sha>
|
||||
<Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="6.0.7-beta.22513.8" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>5d69143fbe992d8fa33d5b83d5fdd5f4ed7bb4fc</Sha>
|
||||
<Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
|
||||
<SourceBuild RepoName="fsharp" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.3.3-release-20230405-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.8.0-release-23615-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/microsoft/vstest</Uri>
|
||||
<Sha>6e76d580fcc69954441344175bd1b0ab2e432026</Sha>
|
||||
<SourceBuildTarball RepoName="vstest" ManagedOnly="true" />
|
||||
<Sha>aa59400b11e1aeee2e8af48928dbd48748a8bef9</Sha>
|
||||
<SourceBuild RepoName="vstest" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="6.0.200-1.24270.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/linker</Uri>
|
||||
<Sha>e66cbcaa36aa719936a46160198c9012c6e174e4</Sha>
|
||||
<SourceBuild RepoName="linker" ManagedOnly="true" />
|
||||
<RepoName>linker</RepoName>
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="8.0.7" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
|
||||
<Sha>2aade6beb02ea367fd97c4070a4198802fe61c03</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.3.1-3.22526.13" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-7.24225.6" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>41a5af9d2c459a06c0795bf21a1c046200f375bf</Sha>
|
||||
<Sha>de75b3c77d41c21562fc2e9dbcc26b2268c80b26</Sha>
|
||||
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Build" Version="17.3.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Build" Version="17.8.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>a400405ba8c43976eda92a70d4adf72f9d292a22</Sha>
|
||||
<SourceBuildTarball RepoName="msbuild" ManagedOnly="true" />
|
||||
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.3.4-rc.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.5-preview-24055-02">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
|
||||
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.8.1-rc.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://dev.azure.com/devdiv/DevDiv/_git/NuGet-NuGet.Client-Trusted</Uri>
|
||||
<Sha>5ec7c4dd0086f968a8bc5a20d5cc77b1454469f3</Sha>
|
||||
<Sha>550277e0616e549446f03fda35d3e23dff75dc01</Sha>
|
||||
<SourceBuildTarball RepoName="nuget-client" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.ApplicationInsights" Version="2.0.0">
|
||||
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
|
||||
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
|
||||
</Dependency>
|
||||
<!-- Temporarily pinning Microsoft.Web.Xdt until strict coherency is enabled by default -->
|
||||
<Dependency Name="Microsoft.Web.Xdt" Version="5.0.0-preview.21431.1" CoherentParentDependency="Microsoft.NET.Sdk" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/xdt</Uri>
|
||||
<Sha>698fdad58fa64a55f16cd9562c90224cc498ed02</Sha>
|
||||
<SourceBuildTarball RepoName="xdt" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Manifest-6.0.400" Version="6.0.32" CoherentParentDependency="VS.Redist.Common.NetCore.SharedFramework.x64.6.0">
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100" Version="8.0.7" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>8601068126449af799f8e07ca358dbbd4b3fcab4</Sha>
|
||||
<Sha>a64772f521c578bc9925578b1384d3a08a02d31d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build" Version="0.1.0-alpha.1.21519.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/source-build</Uri>
|
||||
<Sha>10d0f7e94aa45889155c312f51cfc01bf326b853</Sha>
|
||||
<SourceBuild RepoName="source-build" ManagedOnly="true" />
|
||||
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-8.0.100" Version="8.0.0-preview.1.23557.2">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspire</Uri>
|
||||
<Sha>48e42f59d64d84b404e904996a9ed61f2a17a569</Sha>
|
||||
<SourceBuild RepoName="aspire" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Cli.CommandLine" Version="1.0.0-preview.21310.2">
|
||||
<Uri>https://github.com/dotnet/clicommandlineparser</Uri>
|
||||
<Sha>3198bf5660cad3dab85f5475bf1fda9688146e3f</Sha>
|
||||
<SourceBuildTarball RepoName="clicommandlineparser" ManagedOnly="true" />
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="8.0.7-servicing.24313.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>a64772f521c578bc9925578b1384d3a08a02d31d</Sha>
|
||||
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="1.0.247101">
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>7431bf2f3c204cbbc326c8d55ce4ac5cad7661d6</Sha>
|
||||
<SourceBuildTarball RepoName="deployment-tools" ManagedOnly="true" />
|
||||
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.diagnostics" Version="5.0.0-preview.21506.1">
|
||||
<Uri>https://github.com/dotnet/diagnostics</Uri>
|
||||
<Sha>ab3eb7a525e31dc6fb4d9cc0b7154fa2be58dac1</Sha>
|
||||
<SourceBuildTarball RepoName="diagnostics" ManagedOnly="true" />
|
||||
<!-- Explicit dependency because Microsoft.Deployment.DotNet.Releases has different versioning
|
||||
than the SB intermediate -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="8.0.0-preview.6.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
|
||||
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="1.4.0-beta2-21475-02">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.24379.1">
|
||||
<Uri>https://github.com/dotnet/source-build-externals</Uri>
|
||||
<Sha>fb970eccb0a9cae3092464e29cbabda0d4115049</Sha>
|
||||
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1">
|
||||
<Uri>https://github.com/dotnet/symreader</Uri>
|
||||
<Sha>7b9791daa3a3477eb22ec805946c9fff8b42d8ca</Sha>
|
||||
<SourceBuildTarball RepoName="symreader" ManagedOnly="true" />
|
||||
<Sha>2c8079e2e8e78c0cd11ac75a32014756136ecdb9</Sha>
|
||||
<SourceBuild RepoName="symreader" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.23307.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>02fe27cd6a9b001c8feb7938e6ef4b3799745759</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.430701" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>02fe27cd6a9b001c8feb7938e6ef4b3799745759</Sha>
|
||||
<SourceBuild RepoName="command-line-api" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.24367.5">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24367.1">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>3ea644036738781aff3b55f57a16bc99a6b82c4c</Sha>
|
||||
<Sha>fa3d544b066661522f1ec5d5e8cfd461a29b0f8a</Sha>
|
||||
<SourceBuild RepoName="arcade" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="6.0.0-beta.24367.5">
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.24367.1">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>3ea644036738781aff3b55f57a16bc99a6b82c4c</Sha>
|
||||
<SourceBuild RepoName="arcade" ManagedOnly="true" />
|
||||
<Sha>fa3d544b066661522f1ec5d5e8cfd461a29b0f8a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.24367.5">
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.24367.1">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>3ea644036738781aff3b55f57a16bc99a6b82c4c</Sha>
|
||||
<Sha>fa3d544b066661522f1ec5d5e8cfd461a29b0f8a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="6.0.0-servicing.24266.3">
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23578.2">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>5263b603d90991a0c200aca8b8892c3d7cfe4751</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.DarcLib" Version="1.1.0-beta.23578.2">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>5263b603d90991a0c200aca8b8892c3d7cfe4751</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="8.0.0-alpha.1.22557.12">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>af841c8b33cecc92d74222298f1e45bf7bf3d90a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.24372.3">
|
||||
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
|
||||
<Sha>b6e3937b3818bb214a967e990da7002dd8f20fad</Sha>
|
||||
<SourceBuildTarball RepoName="source-build-reference-packages" ManagedOnly="true" />
|
||||
<Sha>30ed464acd37779c64e9dc652d4460543ebf9966</Sha>
|
||||
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-21480-02" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
|
||||
<Uri>https://github.com/dotnet/sourcelink</Uri>
|
||||
<Sha>8031e5220baf2acad991e661d8308b783d2acf3e</Sha>
|
||||
<SourceBuild RepoName="sourcelink" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.21431.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23475.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
|
||||
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
|
||||
<Sha>bc3233146e1fcd393ed471d5005333c83363e0fe</Sha>
|
||||
<Sha>73f0850939d96131c28cf6ea6ee5aacb4da0083a</Sha>
|
||||
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
|
|
|
@ -5,37 +5,59 @@
|
|||
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VersionMajor>6</VersionMajor>
|
||||
<VersionMajor>8</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<VersionSDKMinor>4</VersionSDKMinor>
|
||||
<VersionFeature>26</VersionFeature>
|
||||
<VersionSDKMinor>1</VersionSDKMinor>
|
||||
<VersionFeature>09</VersionFeature>
|
||||
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature)</VersionPrefix>
|
||||
<PreReleaseVersionLabel>servicing</PreReleaseVersionLabel>
|
||||
<MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion>
|
||||
<CliProductBandVersion>$(MajorMinorVersion).$(VersionSDKMinor)</CliProductBandVersion>
|
||||
<!-- Enable to remove prerelease label. -->
|
||||
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">true</StabilizePackageVersion>
|
||||
<DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
|
||||
<!-- Calculate prerelease label -->
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">rtm</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' == '00'">rtm</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' != '00'">servicing</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">
|
||||
</PreReleaseVersionIteration>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VersionFeature21>30</VersionFeature21>
|
||||
<VersionFeature31>32</VersionFeature31>
|
||||
<VersionFeature50>17</VersionFeature50>
|
||||
<VersionFeature60>$([MSBuild]::Add($(VersionFeature), 25))</VersionFeature60>
|
||||
<VersionFeature70>20</VersionFeature70>
|
||||
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks
|
||||
referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
|
||||
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Restore feeds -->
|
||||
<PropertyGroup Label="Restore feeds">
|
||||
<!-- In an orchestrated build, this may be overridden to other Azure feeds. -->
|
||||
<DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">https://dotnetbuilds.blob.core.windows.net/public/</DotNetAssetRootUrl>
|
||||
<DotNetPrivateAssetRootUrl Condition="'$(DotNetPrivateAssetRootUrl)'==''">https://dotnetclimsrc.blob.core.windows.net/dotnet/</DotNetPrivateAssetRootUrl>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade -->
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.24367.5</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.24367.1</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade-services -->
|
||||
<MicrosoftDotNetDarcLibVersion>1.1.0-beta.23621.3</MicrosoftDotNetDarcLibVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/winforms -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>6.0.32-servicing.24314.5</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>8.0.7-servicing.24313.8</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/wpf -->
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>6.0.32-servicing.24314.4</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>8.0.7-servicing.24313.7</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/templating -->
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>6.0.424</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/test-templates -->
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.0.2-beta4.22207.1</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<!-- Supported versions -->
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- NUnit3.DotNetNew.Template versions do not 'flow in' -->
|
||||
|
@ -43,44 +65,50 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>6.0.32</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>6.0.32</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>6.0.32-servicing.24314.5</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>6.0.32-servicing.24314.5</VSRedistCommonAspNetCoreSharedFrameworkx6460PackageVersion>
|
||||
<dotnetdevcertsPackageVersion>6.0.32-servicing.24314.5</dotnetdevcertsPackageVersion>
|
||||
<dotnetusersecretsPackageVersion>6.0.32-servicing.24314.5</dotnetusersecretsPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>8.0.7</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>8.0.7</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>8.0.7-servicing.24314.2</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>8.0.7-servicing.24314.2</VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<dotnetdevcertsPackageVersion>8.0.7-servicing.24314.2</dotnetdevcertsPackageVersion>
|
||||
<dotnetuserjwtsPackageVersion>8.0.7-servicing.24314.2</dotnetuserjwtsPackageVersion>
|
||||
<dotnetusersecretsPackageVersion>8.0.7-servicing.24314.2</dotnetusersecretsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/sdk -->
|
||||
<MicrosoftNETSdkPackageVersion>6.0.424-servicing.24315.2</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>6.0.424-servicing.24315.2</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>8.0.107</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>8.0.107-servicing.24317.5</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>8.0.107-servicing.24317.5</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
|
||||
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/roslyn -->
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>4.8.0-7.24225.6</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/corefx -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>6.0.13</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>8.0.7-servicing.24313.11</MicrosoftNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/core-setup -->
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>6.0.32-servicing.24314.7</VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6460PackageVersion>6.0.32-servicing.24314.7</VSRedistCommonNetCoreTargetingPackx6460PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>6.0.32</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>6.0.32</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>6.0.32</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>6.0.32</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>8.0.7-servicing.24313.11</VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6480PackageVersion>8.0.7-servicing.24313.11</VSRedistCommonNetCoreTargetingPackx6480PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>8.0.7</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>8.0.7</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>8.0.7</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.7</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6460PackageVersion>6.0.32-servicing.24314.6</VSRedistCommonWindowsDesktopSharedFrameworkx6460PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6460PackageVersion>6.0.32-servicing.24314.6</VSRedistCommonWindowsDesktopTargetingPackx6460PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>6.0.32</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>6.0.32</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>8.0.7-servicing.24314.3</VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>8.0.7-servicing.24314.3</VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>8.0.7</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>8.0.7</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 -->
|
||||
|
@ -92,71 +120,102 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/NuGet/NuGet.Client -->
|
||||
<NuGetBuildTasksPackageVersion>6.3.4-rc.2</NuGetBuildTasksPackageVersion>
|
||||
<NuGetVersioningPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetVersioningPackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>6.8.1-rc.2</NuGetBuildTasksPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/msbuild -->
|
||||
<MicrosoftBuildPackageVersion>17.3.4</MicrosoftBuildPackageVersion>
|
||||
<MicrosoftBuildPackageVersion>17.8.5</MicrosoftBuildPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/deployment-tools -->
|
||||
<PropertyGroup>
|
||||
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.23463.1</MicrosoftDeploymentDotNetReleasesVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Automated versions for asp.net templates -->
|
||||
<!-- Grab just the patch version from MicrosoftNETSdkPackageVersion (7.0.103-servicing becomes 03) -->
|
||||
<MicrosoftNETSdkFeatureAndPatchVersion>$(MicrosoftNETSdkPackageVersion.Split('.')[2])</MicrosoftNETSdkFeatureAndPatchVersion>
|
||||
<MicrosoftNETSdkFeatureAndPatchVersion>$(MicrosoftNETSdkFeatureAndPatchVersion.Split('-')[0])</MicrosoftNETSdkFeatureAndPatchVersion>
|
||||
<MicrosoftNETSdkPatchVersion>$(MicrosoftNETSdkFeatureAndPatchVersion.Substring(1))</MicrosoftNETSdkPatchVersion>
|
||||
<!--
|
||||
Between branding and shipping, the templates should stay at last month's version.
|
||||
If the incoming SDK version is 2 versions behind us, we know we just branded but haven't done the internal -> public merge yet.
|
||||
Therefore we stay at last month's version.
|
||||
We also need to special case the 1st patch release, because the incoming SDK version will never be 2 versions behind us in that case.
|
||||
Instead the indicator is that the incoming SDK version is not RTM or greater yet.
|
||||
Preview releases already use -1 versionining so don't subtract one for that version.
|
||||
In public builds, we always use the 2 month old version.
|
||||
-->
|
||||
<SubtractOneFromTemplateVersions Condition="'$(SYSTEM_TEAMPROJECT)' != 'internal'">true</SubtractOneFromTemplateVersions>
|
||||
<SubtractOneFromTemplateVersions Condition="$([MSBuild]::Subtract($(VersionFeature), $(MicrosoftNETSdkPatchVersion))) >= 2">true</SubtractOneFromTemplateVersions>
|
||||
<SubtractOneFromTemplateVersions Condition="$(VersionFeature) >= 1 AND ! $(MicrosoftNETSdkPackageVersion.Contains('rtm')) AND ! $(MicrosoftNETSdkPackageVersion.Contains('servicing'))">true</SubtractOneFromTemplateVersions>
|
||||
<AspNetCoreTemplateFeature60>$([MSBuild]::Subtract($(VersionFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature60 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature60)</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature60 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Cross-release dependency versions -->
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntime60PackageVersion>6.0.14</MicrosoftAspNetCoreAppRuntime60PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion>
|
||||
<SharedHostVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</SharedHostVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- This is the version of the zip archive -->
|
||||
<!-- This is the version of the zip archive for the WiX toolset and is different from the NuGet package version format. -->
|
||||
<WixVersion>3.14.1.8722</WixVersion>
|
||||
<!-- Unlike Arcade 7 and later, there is no default package version property defined in the Arcade SDK -->
|
||||
<WixPackageVersion>3.14.1-8722.20240403.1</WixPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- 8.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates80PackageVersion>$(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion)</MicrosoftDotnetWinFormsProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates80PackageVersion>$(MicrosoftDotNetWpfProjectTemplatesPackageVersion)</MicrosoftDotNetWpfProjectTemplates80PackageVersion>
|
||||
<NUnit3Templates80PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates80PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonItemTemplates80PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates80PackageVersion>
|
||||
<AspNetCorePackageVersionFor80Templates>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCorePackageVersionFor80Templates>
|
||||
<!-- 6.0 Template versions -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftDotNetWpfProjectTemplatesPackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftWinFormsProjectTemplates60PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftWPFProjectTemplates60PackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion>
|
||||
<NUnit3Templates60PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates60PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates60PackageVersion>6.0.424</MicrosoftDotNetCommonProjectTemplates60PackageVersion>
|
||||
<AspNetCorePackageVersionFor60Templates>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCorePackageVersionFor60Templates>
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonProjectTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonProjectTemplates60PackageVersion>
|
||||
<AspNetCorePackageVersionFor60Templates>6.0.$(AspNetCoreTemplateFeature60)</AspNetCorePackageVersionFor60Templates>
|
||||
</PropertyGroup>
|
||||
<!-- infrastructure and test only dependencies -->
|
||||
<PropertyGroup>
|
||||
<VersionToolsVersion>2.2.0-beta.19072.10</VersionToolsVersion>
|
||||
<DotnetDebToolVersion>2.0.0</DotnetDebToolVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.3.3-release-20230405-02</MicrosoftNETTestSdkVersion>
|
||||
</PropertyGroup>
|
||||
<!-- dependencies for source-build tarball -->
|
||||
<PropertyGroup>
|
||||
<!-- These two MicrosoftBuild versions are required to build tarball tasks
|
||||
These tasks will eventually move to Arcade and then these can be
|
||||
removed. See https://github.com/dotnet/source-build/issues/2295 -->
|
||||
<MicrosoftBuildFrameworkVersion>15.7.179</MicrosoftBuildFrameworkVersion>
|
||||
<MicrosoftBuildUtilitiesCoreVersion>15.7.179</MicrosoftBuildUtilitiesCoreVersion>
|
||||
<!--
|
||||
Building .NET from source depends on one or two tar.gz files depending on the branch's current
|
||||
source-buildability status.
|
||||
|
||||
PrivateSourceBuiltArtifactsPackageVersion is a tar.gz of .NET build outputs from a previous
|
||||
build needed to build the current version of .NET. This is always defined, because .NET needs
|
||||
to be bootstrappable at any point in time.
|
||||
|
||||
PrivateSourceBuiltPrebuiltsPackageVersion is a tar.gz of assets downloaded from the internet
|
||||
that are needed to build the current version of .NET. Early in the lifecycle 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.
|
||||
-->
|
||||
<PrivateSourceBuiltArtifactsPackageVersion>6.0.132</PrivateSourceBuiltArtifactsPackageVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.8.0-release-23615-02</MicrosoftNETTestSdkVersion>
|
||||
<MicrosoftExtensionsLoggingConsoleVersion>8.0.0-alpha.1.22557.12</MicrosoftExtensionsLoggingConsoleVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Workload manifest package versions -->
|
||||
<PropertyGroup>
|
||||
<MauiWorkloadManifestVersion>6.0.312</MauiWorkloadManifestVersion>
|
||||
<XamarinAndroidWorkloadManifestVersion>32.0.301</XamarinAndroidWorkloadManifestVersion>
|
||||
<XamarinIOSWorkloadManifestVersion>15.4.303</XamarinIOSWorkloadManifestVersion>
|
||||
<XamarinMacCatalystWorkloadManifestVersion>15.4.303</XamarinMacCatalystWorkloadManifestVersion>
|
||||
<XamarinMacOSWorkloadManifestVersion>12.3.303</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>15.4.303</XamarinTvOSWorkloadManifestVersion>
|
||||
<MonoWorkloadManifestVersion>6.0.5</MonoWorkloadManifestVersion>
|
||||
<MicrosoftNETWorkloadEmscriptenManifest60400Version>6.0.32</MicrosoftNETWorkloadEmscriptenManifest60400Version>
|
||||
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenManifest60400Version)</EmscriptenWorkloadManifestVersion>
|
||||
<AspireFeatureBand>8.0.100</AspireFeatureBand>
|
||||
<AspireWorkloadManifestVersion>8.0.0-preview.1.23557.2</AspireWorkloadManifestVersion>
|
||||
<MauiFeatureBand>8.0.100</MauiFeatureBand>
|
||||
<MauiWorkloadManifestVersion>8.0.3</MauiWorkloadManifestVersion>
|
||||
<XamarinAndroidWorkloadManifestVersion>34.0.43</XamarinAndroidWorkloadManifestVersion>
|
||||
<XamarinIOSWorkloadManifestVersion>17.0.8478</XamarinIOSWorkloadManifestVersion>
|
||||
<XamarinMacCatalystWorkloadManifestVersion>17.0.8478</XamarinMacCatalystWorkloadManifestVersion>
|
||||
<XamarinMacOSWorkloadManifestVersion>14.0.8478</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>17.0.8478</XamarinTvOSWorkloadManifestVersion>
|
||||
<!-- Workloads from dotnet/emsdk -->
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>8.0.7</MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>
|
||||
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion)</EmscriptenWorkloadManifestVersion>
|
||||
<!-- emsdk workload prerelease version band must match the emsdk feature band -->
|
||||
<EmscriptenWorkloadFeatureBand>8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`))</EmscriptenWorkloadFeatureBand>
|
||||
<!-- Workloads from dotnet/runtime use MicrosoftNETCoreAppRefPackageVersion because it has a stable name that does not include the full feature band -->
|
||||
<MonoWorkloadManifestVersion>$(MicrosoftNETCoreAppRefPackageVersion)</MonoWorkloadManifestVersion>
|
||||
<!-- mono workload prerelease version band must match the runtime feature band -->
|
||||
<MonoWorkloadFeatureBand>8.0.100$([System.Text.RegularExpressions.Regex]::Match($(MonoWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`))</MonoWorkloadFeatureBand>
|
||||
</PropertyGroup>
|
||||
<!-- dependencies for VMR initialization -->
|
||||
<PropertyGroup>
|
||||
<!-- These two MicrosoftBuild versions are required to build VMR initialization tasks -->
|
||||
<MicrosoftBuildFrameworkVersion>15.7.179</MicrosoftBuildFrameworkVersion>
|
||||
<MicrosoftBuildUtilitiesCoreVersion>15.7.179</MicrosoftBuildUtilitiesCoreVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- pinned dependency. This package is not being produced outside of the 2.0 branch of corefx and should not change. -->
|
||||
|
|
240
eng/build-pr.yml
240
eng/build-pr.yml
|
@ -1,60 +1,165 @@
|
|||
parameters:
|
||||
# Agent OS identifier and used as job name
|
||||
agentOs: ''
|
||||
# Agent OS identifier and used as job name
|
||||
- name: agentOs
|
||||
type: string
|
||||
|
||||
# Agent pool
|
||||
pool: {}
|
||||
# Job name
|
||||
- name: jobName
|
||||
type: string
|
||||
|
||||
# Additional variables
|
||||
variables: {}
|
||||
# Container to run the build in, if any
|
||||
- name: container
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Build strategy - matrix
|
||||
strategy: {}
|
||||
# Job timeout
|
||||
- name: timeoutInMinutes
|
||||
type: number
|
||||
default: 180
|
||||
|
||||
# Job timeout
|
||||
timeoutInMinutes: 180
|
||||
# Build configuration (Debug, Release)
|
||||
- name: buildConfiguration
|
||||
type: string
|
||||
values:
|
||||
- Debug
|
||||
- Release
|
||||
|
||||
# Publish using pipelines
|
||||
enablePublishUsingPipelines: true
|
||||
# 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
|
||||
|
||||
phases:
|
||||
- template: /eng/common/templates/job/job.yml
|
||||
# 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 }}
|
||||
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
${{ if not(parameters.pgoInstrument) }}:
|
||||
name: ${{ parameters.agentOs }}
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
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
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}}
|
||||
enableTelemetry: true
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
container: ${{ parameters.container }}
|
||||
${{ if eq(parameters.agentOs, 'Darwin') }}:
|
||||
pool:
|
||||
vmImage: 'macOS-latest'
|
||||
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
${{ if parameters.isBuiltFromVmr }}:
|
||||
enableSbom: false
|
||||
${{ else }}:
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: true
|
||||
enableTelemetry: true
|
||||
helixRepo: dotnet/installer
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if ne(parameters.strategy, '') }}:
|
||||
strategy: ${{ parameters.strategy }}
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
variables:
|
||||
# Test variables
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '-test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '--pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '--test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
|
||||
- ${{ if parameters.pgoInstrument }}:
|
||||
- _PgoInstrument: '/p:PgoInstrument=true'
|
||||
- _PackArg: ''
|
||||
- ${{ else }}:
|
||||
- _PgoInstrument: ''
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '--pack'
|
||||
- ${{ if parameters.pgoInstrument }}:
|
||||
- _PgoInstrument: '/p:PgoInstrument=true'
|
||||
- _PackArg: ''
|
||||
- _AgentOSName: ${{ parameters.agentOs }}
|
||||
- _TeamName: Roslyn-Project-System
|
||||
|
||||
- ${{ 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
|
||||
- _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)'
|
||||
- _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-Symbol-Server-PATs
|
||||
- group: DotNet-HelixApi-Access
|
||||
- group: DotNet-Blob-Feed
|
||||
- _DotNetPublishToBlobFeed: true
|
||||
- _PushToVSFeed: true
|
||||
- _SignType: real
|
||||
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
|
||||
|
@ -63,95 +168,86 @@ phases:
|
|||
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
|
||||
$(_PgoInstrument)
|
||||
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
- template: /eng/common/templates/steps/enable-internal-runtimes.yml
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
filePath: $(installerRoot)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(installerRoot)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: build.cmd
|
||||
- script: $(installerRoot)/build.cmd
|
||||
$(_TestArg) $(_PackArg)
|
||||
-publish -ci -sign
|
||||
-Configuration $(_BuildConfig)
|
||||
-Architecture $(_BuildArchitecture)
|
||||
-Configuration ${{ parameters.buildConfiguration }}
|
||||
-Architecture ${{ parameters.buildArchitecture }}
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
env:
|
||||
DOTNET_CLI_UI_LANGUAGE: $(_DOTNET_CLI_UI_LANGUAGE)
|
||||
DOTNET_CLI_UI_LANGUAGE: ${{ parameters.dotnetCLIUILanguage }}
|
||||
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
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: ./build.sh
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg) $(_PackArg)
|
||||
--publish --ci
|
||||
--noprettyprint
|
||||
--configuration $(_BuildConfig)
|
||||
$(_DockerParameter)
|
||||
--architecture $(_BuildArchitecture)
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_LinuxPortable)
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}:
|
||||
- script: ./build.sh
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg)
|
||||
--pack --publish --ci
|
||||
--noprettyprint
|
||||
--configuration $(_BuildConfig)
|
||||
--architecture $(_BuildArchitecture)
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.agentOs, 'Windows_NT'), ne(variables['PostBuildSign'], 'true')) }}:
|
||||
- task: NuGetCommand@2
|
||||
displayName: Push Visual Studio NuPkgs
|
||||
inputs:
|
||||
command: push
|
||||
packagesToPush: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/NonShipping/VS.*.nupkg'
|
||||
nuGetFeedType: external
|
||||
publishFeedCredentials: 'DevDiv - VS package feed'
|
||||
condition: and(succeeded(), ne(variables['PostBuildSign'], true), eq(variables['_PushToVSFeed'], 'true'), eq(variables['_DotNetPublishToBlobFeed'], 'true'), or(eq(variables['_BuildArchitecture'], 'x64'), eq(variables['_BuildArchitecture'], 'x86')))
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
inputs:
|
||||
testRunner: XUnit
|
||||
testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml'
|
||||
testRunner: VSTest
|
||||
testResultsFiles: 'artifacts/TestResults/${{ parameters.buildConfiguration }}/*.trx'
|
||||
testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(_BuildConfig)'
|
||||
configuration: '${{ parameters.buildConfiguration }}'
|
||||
condition: ne(variables['_TestArg'], '')
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Logs
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts'
|
||||
SourceFolder: '$(installerRoot)/artifacts'
|
||||
Contents: |
|
||||
log/$(_BuildConfig)/**/*
|
||||
TestResults/$(_BuildConfig)/**/*
|
||||
log/${{ parameters.buildConfiguration }}/**/*
|
||||
TestResults/${{ parameters.buildConfiguration }}/**/*
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
|
246
eng/build.yml
246
eng/build.yml
|
@ -1,60 +1,171 @@
|
|||
parameters:
|
||||
# Agent OS identifier and used as job name
|
||||
agentOs: ''
|
||||
# Agent OS identifier and used as job name
|
||||
- name: agentOs
|
||||
type: string
|
||||
|
||||
# Agent pool
|
||||
pool: {}
|
||||
# Job name
|
||||
- name: jobName
|
||||
type: string
|
||||
|
||||
# Additional variables
|
||||
variables: {}
|
||||
# Container to run the build in, if any
|
||||
- name: container
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
# Build strategy - matrix
|
||||
strategy: {}
|
||||
# Job timeout
|
||||
- name: timeoutInMinutes
|
||||
type: number
|
||||
default: 180
|
||||
|
||||
# Job timeout
|
||||
timeoutInMinutes: 180
|
||||
# Build configuration (Debug, Release)
|
||||
- name: buildConfiguration
|
||||
type: string
|
||||
values:
|
||||
- Debug
|
||||
- Release
|
||||
|
||||
# Publish using pipelines
|
||||
enablePublishUsingPipelines: true
|
||||
# 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
|
||||
|
||||
phases:
|
||||
- template: /eng/common/templates-official/job/job.yml
|
||||
# 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-official/job/job.yml
|
||||
parameters:
|
||||
# Set up the name of the job.
|
||||
${{ if parameters.pgoInstrument }}:
|
||||
name: PGO_${{ parameters.agentOs }}
|
||||
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
|
||||
${{ if not(parameters.pgoInstrument) }}:
|
||||
name: ${{ parameters.agentOs }}
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
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
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}}
|
||||
enableTelemetry: true
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-windows-2019-open
|
||||
os: windows
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2019
|
||||
os: windows
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
image: 1es-ubuntu-2004-open
|
||||
os: linux
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-ubuntu-2004
|
||||
os: linux
|
||||
container: ${{ parameters.container }}
|
||||
${{ if eq(parameters.agentOs, 'Darwin') }}:
|
||||
pool:
|
||||
name: Azure Pipelines
|
||||
image: macOS-latest
|
||||
os: macOS
|
||||
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
${{ if parameters.isBuiltFromVmr }}:
|
||||
enableSbom: false
|
||||
${{ else }}:
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: true
|
||||
enableTelemetry: true
|
||||
helixRepo: dotnet/installer
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if ne(parameters.strategy, '') }}:
|
||||
strategy: ${{ parameters.strategy }}
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
variables:
|
||||
# Test variables
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '-test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '--pack'
|
||||
- ${{ if parameters.runTests }}:
|
||||
- _TestArg: '--test'
|
||||
- ${{ else }}:
|
||||
- _TestArg: ''
|
||||
|
||||
- ${{ if parameters.pgoInstrument }}:
|
||||
- _PgoInstrument: '/p:PgoInstrument=true'
|
||||
- _PackArg: ''
|
||||
- ${{ else }}:
|
||||
- _PgoInstrument: ''
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '-pack'
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- _PackArg: '--pack'
|
||||
- ${{ if parameters.pgoInstrument }}:
|
||||
- _PgoInstrument: '/p:PgoInstrument=true'
|
||||
- _PackArg: ''
|
||||
- _AgentOSName: ${{ parameters.agentOs }}
|
||||
- _TeamName: Roslyn-Project-System
|
||||
|
||||
- ${{ 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
|
||||
- _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)'
|
||||
- _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-Symbol-Server-PATs
|
||||
- group: DotNet-HelixApi-Access
|
||||
- group: DotNet-Blob-Feed
|
||||
- _DotNetPublishToBlobFeed: true
|
||||
- _PushToVSFeed: true
|
||||
- _SignType: real
|
||||
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
|
||||
|
@ -63,95 +174,86 @@ phases:
|
|||
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
|
||||
$(_PgoInstrument)
|
||||
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
- template: /eng/common/templates/steps/enable-internal-runtimes.yml
|
||||
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
filePath: $(installerRoot)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(installerRoot)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: build.cmd
|
||||
- script: $(installerRoot)/build.cmd
|
||||
$(_TestArg) $(_PackArg)
|
||||
-publish -ci -sign
|
||||
-Configuration $(_BuildConfig)
|
||||
-Architecture $(_BuildArchitecture)
|
||||
-Configuration ${{ parameters.buildConfiguration }}
|
||||
-Architecture ${{ parameters.buildArchitecture }}
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
env:
|
||||
DOTNET_CLI_UI_LANGUAGE: $(_DOTNET_CLI_UI_LANGUAGE)
|
||||
DOTNET_CLI_UI_LANGUAGE: ${{ parameters.dotnetCLIUILanguage }}
|
||||
|
||||
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
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: ./build.sh
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg) $(_PackArg)
|
||||
--publish --ci
|
||||
--noprettyprint
|
||||
--configuration $(_BuildConfig)
|
||||
$(_DockerParameter)
|
||||
--architecture $(_BuildArchitecture)
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_LinuxPortable)
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}:
|
||||
- script: ./build.sh
|
||||
- script: $(installerRoot)/build.sh
|
||||
$(_TestArg)
|
||||
--pack --publish --ci
|
||||
--noprettyprint
|
||||
--configuration $(_BuildConfig)
|
||||
--architecture $(_BuildArchitecture)
|
||||
--configuration ${{ parameters.buildConfiguration }}
|
||||
--architecture ${{ parameters.buildArchitecture }}
|
||||
$(_RuntimeIdentifier)
|
||||
$(_BuildArgs)
|
||||
$(_AdditionalBuildParameters)
|
||||
${{ parameters.additionalBuildParameters }}
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build
|
||||
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.agentOs, 'Windows_NT'), ne(variables['PostBuildSign'], 'true')) }}:
|
||||
- task: 1ES.PublishNuget@1
|
||||
displayName: Push Visual Studio NuPkgs
|
||||
inputs:
|
||||
packagesToPush: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/NonShipping/VS.*.nupkg'
|
||||
nuGetFeedType: external
|
||||
publishFeedCredentials: 'DevDiv - VS package feed'
|
||||
condition: and(succeeded(), ne(variables['PostBuildSign'], true), eq(variables['_PushToVSFeed'], 'true'), eq(variables['_DotNetPublishToBlobFeed'], 'true'), or(eq(variables['_BuildArchitecture'], 'x64'), eq(variables['_BuildArchitecture'], 'x86')))
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
inputs:
|
||||
testRunner: XUnit
|
||||
testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml'
|
||||
testRunner: VSTest
|
||||
testResultsFiles: 'artifacts/TestResults/${{ parameters.buildConfiguration }}/*.trx'
|
||||
testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(_BuildConfig)'
|
||||
configuration: '${{ parameters.buildConfiguration }}'
|
||||
condition: ne(variables['_TestArg'], '')
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Logs
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts'
|
||||
SourceFolder: '$(installerRoot)/artifacts'
|
||||
Contents: |
|
||||
log/$(_BuildConfig)/**/*
|
||||
TestResults/$(_BuildConfig)/**/*
|
||||
log/${{ parameters.buildConfiguration }}/**/*
|
||||
TestResults/${{ parameters.buildConfiguration }}/**/*
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
|
4
eng/common/BuildConfiguration/build-configuration.json
Normal file
4
eng/common/BuildConfiguration/build-configuration.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"RetryCountLimit": 1,
|
||||
"RetryByAnyError": false
|
||||
}
|
|
@ -48,7 +48,6 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern
|
|||
else {
|
||||
Write-Host "Package source $SourceName already present."
|
||||
}
|
||||
|
||||
AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd
|
||||
}
|
||||
|
||||
|
@ -82,6 +81,7 @@ function AddCredential($creds, $source, $username, $pwd) {
|
|||
$passwordElement.SetAttribute("key", "ClearTextPassword")
|
||||
$sourceElement.AppendChild($passwordElement) | Out-Null
|
||||
}
|
||||
|
||||
$passwordElement.SetAttribute("value", $pwd)
|
||||
}
|
||||
|
||||
|
@ -146,22 +146,22 @@ $userName = "dn-bot"
|
|||
# Insert credential nodes for Maestro's private feeds
|
||||
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 -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
|
||||
}
|
||||
|
||||
$dotnet5Source = $sources.SelectSingleNode("add[@key='dotnet5']")
|
||||
if ($dotnet5Source -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
$dotnetVersions = @('5','6','7','8')
|
||||
|
||||
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 -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
|
||||
}
|
||||
}
|
||||
|
||||
$dotnet6Source = $sources.SelectSingleNode("add[@key='dotnet6']")
|
||||
if ($dotnet6Source -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
|
||||
}
|
||||
|
||||
$doc.Save($filename)
|
||||
$doc.Save($filename)
|
|
@ -105,53 +105,33 @@ if [ "$?" == "0" ]; then
|
|||
PackageSources+=('dotnet3.1-internal-transport')
|
||||
fi
|
||||
|
||||
# Ensure dotnet5-internal and dotnet5-internal-transport are in the packageSources if the public dotnet5 feeds are present
|
||||
grep -i "<add key=\"dotnet5\"" $ConfigFile
|
||||
if [ "$?" == "0" ]; then
|
||||
grep -i "<add key=\"dotnet5-internal\"" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet5-internal to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet5-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2\" />"
|
||||
DotNetVersions=('5' '6' '7' '8')
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
for DotNetVersion in ${DotNetVersions[@]} ; do
|
||||
FeedPrefix="dotnet${DotNetVersion}";
|
||||
grep -i "<add key=\"$FeedPrefix\"" $ConfigFile
|
||||
if [ "$?" == "0" ]; then
|
||||
grep -i "<add key=\"$FeedPrefix-internal\"" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding $FeedPrefix-internal to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"$FeedPrefix-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=("$FeedPrefix-internal")
|
||||
|
||||
grep -i "<add key=\"$FeedPrefix-internal-transport\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding $FeedPrefix-internal-transport to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"$FeedPrefix-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/$FeedPrefix-internal-transport/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=("$FeedPrefix-internal-transport")
|
||||
fi
|
||||
PackageSources+=('dotnet5-internal')
|
||||
|
||||
grep -i "<add key=\"dotnet5-internal-transport\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet5-internal-transport to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet5-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet5-internal-transport')
|
||||
fi
|
||||
|
||||
# Ensure dotnet6-internal and dotnet6-internal-transport are in the packageSources if the public dotnet6 feeds are present
|
||||
grep -i "<add key=\"dotnet6\"" $ConfigFile
|
||||
if [ "$?" == "0" ]; then
|
||||
grep -i "<add key=\"dotnet6-internal\"" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet6-internal to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet6-internal\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet6-internal')
|
||||
|
||||
grep -i "<add key=\"dotnet6-internal-transport\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet6-internal-transport to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet6-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet6-internal-transport')
|
||||
fi
|
||||
done
|
||||
|
||||
# I want things split line by line
|
||||
PrevIFS=$IFS
|
||||
|
|
|
@ -19,6 +19,9 @@ usage()
|
|||
echo "Actions:"
|
||||
echo " --restore Restore dependencies (short: -r)"
|
||||
echo " --build Build solution (short: -b)"
|
||||
echo " --sourceBuild Source-build the solution (short: -sb)"
|
||||
echo " Will additionally trigger the following actions: --restore, --build, --pack"
|
||||
echo " If --configuration is not set explicitly, will also set it to 'Release'"
|
||||
echo " --rebuild Rebuild solution"
|
||||
echo " --test Run all unit tests in the solution (short: -t)"
|
||||
echo " --integrationTest Run all integration tests in the solution"
|
||||
|
@ -55,6 +58,7 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
|||
|
||||
restore=false
|
||||
build=false
|
||||
source_build=false
|
||||
rebuild=false
|
||||
test=false
|
||||
integration_test=false
|
||||
|
@ -73,7 +77,7 @@ exclude_ci_binary_log=false
|
|||
pipelines_log=false
|
||||
|
||||
projects=''
|
||||
configuration='Debug'
|
||||
configuration=''
|
||||
prepare_machine=false
|
||||
verbosity='minimal'
|
||||
runtime_source_feed=''
|
||||
|
@ -119,6 +123,12 @@ while [[ $# > 0 ]]; do
|
|||
-pack)
|
||||
pack=true
|
||||
;;
|
||||
-sourcebuild|-sb)
|
||||
build=true
|
||||
source_build=true
|
||||
restore=true
|
||||
pack=true
|
||||
;;
|
||||
-test|-t)
|
||||
test=true
|
||||
;;
|
||||
|
@ -168,6 +178,10 @@ while [[ $# > 0 ]]; do
|
|||
shift
|
||||
done
|
||||
|
||||
if [[ -z "$configuration" ]]; then
|
||||
if [[ "$source_build" = true ]]; then configuration="Release"; else configuration="Debug"; fi
|
||||
fi
|
||||
|
||||
if [[ "$ci" == true ]]; then
|
||||
pipelines_log=true
|
||||
node_reuse=false
|
||||
|
@ -187,7 +201,6 @@ function InitializeCustomToolset {
|
|||
}
|
||||
|
||||
function Build {
|
||||
|
||||
InitializeToolset
|
||||
InitializeCustomToolset
|
||||
|
||||
|
@ -206,6 +219,7 @@ function Build {
|
|||
/p:RepoRoot="$repo_root" \
|
||||
/p:Restore=$restore \
|
||||
/p:Build=$build \
|
||||
/p:ArcadeBuildFromSource=$source_build \
|
||||
/p:Rebuild=$rebuild \
|
||||
/p:Test=$test \
|
||||
/p:Pack=$pack \
|
||||
|
|
11
eng/common/cross/arm/sources.list.focal
Normal file
11
eng/common/cross/arm/sources.list.focal
Normal file
|
@ -0,0 +1,11 @@
|
|||
deb http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
11
eng/common/cross/arm/sources.list.jammy
Normal file
11
eng/common/cross/arm/sources.list.jammy
Normal file
|
@ -0,0 +1,11 @@
|
|||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
|
|
@ -8,4 +8,4 @@ deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
|||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
|
|
9
eng/common/cross/arm/tizen/tizen.patch
Normal file
9
eng/common/cross/arm/tizen/tizen.patch
Normal file
|
@ -0,0 +1,9 @@
|
|||
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
|
||||
--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
|
||||
+++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
|
||||
@@ -2,4 +2,4 @@
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
OUTPUT_FORMAT(elf32-littlearm)
|
||||
-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )
|
||||
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-armhf.so.3 ) )
|
11
eng/common/cross/arm64/sources.list.focal
Normal file
11
eng/common/cross/arm64/sources.list.focal
Normal file
|
@ -0,0 +1,11 @@
|
|||
deb http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.jammy
Normal file
11
eng/common/cross/arm64/sources.list.jammy
Normal file
|
@ -0,0 +1,11 @@
|
|||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
|
|
@ -8,4 +8,4 @@ deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
|||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||
|
|
|
@ -1,170 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
|
||||
VERBOSE=0
|
||||
fi
|
||||
|
||||
Log()
|
||||
{
|
||||
if [ $VERBOSE -ge $1 ]; then
|
||||
echo ${@:2}
|
||||
fi
|
||||
}
|
||||
|
||||
Inform()
|
||||
{
|
||||
Log 1 -e "\x1B[0;34m$@\x1B[m"
|
||||
}
|
||||
|
||||
Debug()
|
||||
{
|
||||
Log 2 -e "\x1B[0;32m$@\x1B[m"
|
||||
}
|
||||
|
||||
Error()
|
||||
{
|
||||
>&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
|
||||
}
|
||||
|
||||
Fetch()
|
||||
{
|
||||
URL=$1
|
||||
FILE=$2
|
||||
PROGRESS=$3
|
||||
if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
|
||||
CURL_OPT="--progress-bar"
|
||||
else
|
||||
CURL_OPT="--silent"
|
||||
fi
|
||||
curl $CURL_OPT $URL > $FILE
|
||||
}
|
||||
|
||||
hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
|
||||
hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
|
||||
hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
|
||||
|
||||
TMPDIR=$1
|
||||
if [ ! -d $TMPDIR ]; then
|
||||
TMPDIR=./tizen_tmp
|
||||
Debug "Create temporary directory : $TMPDIR"
|
||||
mkdir -p $TMPDIR
|
||||
fi
|
||||
|
||||
TIZEN_URL=http://download.tizen.org/snapshots/tizen/
|
||||
BUILD_XML=build.xml
|
||||
REPOMD_XML=repomd.xml
|
||||
PRIMARY_XML=primary.xml
|
||||
TARGET_URL="http://__not_initialized"
|
||||
|
||||
Xpath_get()
|
||||
{
|
||||
XPATH_RESULT=''
|
||||
XPATH=$1
|
||||
XML_FILE=$2
|
||||
RESULT=$(xmllint --xpath $XPATH $XML_FILE)
|
||||
if [[ -z ${RESULT// } ]]; then
|
||||
Error "Can not find target from $XML_FILE"
|
||||
Debug "Xpath = $XPATH"
|
||||
exit 1
|
||||
fi
|
||||
XPATH_RESULT=$RESULT
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs_init()
|
||||
{
|
||||
TARGET=$1
|
||||
PROFILE=$2
|
||||
Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
|
||||
|
||||
TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
|
||||
if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
|
||||
mkdir -p $TMP_PKG_DIR
|
||||
|
||||
PKG_URL=$TIZEN_URL/$PROFILE/latest
|
||||
|
||||
BUILD_XML_URL=$PKG_URL/$BUILD_XML
|
||||
TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
|
||||
TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
|
||||
TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
|
||||
TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
|
||||
|
||||
Fetch $BUILD_XML_URL $TMP_BUILD
|
||||
|
||||
Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
|
||||
|
||||
TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
|
||||
Xpath_get $TARGET_XPATH $TMP_BUILD
|
||||
TARGET_PATH=$XPATH_RESULT
|
||||
TARGET_URL=$PKG_URL/$TARGET_PATH
|
||||
|
||||
REPOMD_URL=$TARGET_URL/repodata/repomd.xml
|
||||
PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
|
||||
|
||||
Fetch $REPOMD_URL $TMP_REPOMD
|
||||
|
||||
Debug "fetch $REPOMD_URL to $TMP_REPOMD"
|
||||
|
||||
Xpath_get $PRIMARY_XPATH $TMP_REPOMD
|
||||
PRIMARY_XML_PATH=$XPATH_RESULT
|
||||
PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
|
||||
|
||||
Fetch $PRIMARY_URL $TMP_PRIMARYGZ
|
||||
|
||||
Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
|
||||
|
||||
gunzip $TMP_PRIMARYGZ
|
||||
|
||||
Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs()
|
||||
{
|
||||
ARCH=$1
|
||||
PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
|
||||
|
||||
PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
|
||||
|
||||
for pkg in ${@:2}
|
||||
do
|
||||
Inform "Fetching... $pkg"
|
||||
XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
PKG_PATH=$XPATH_RESULT
|
||||
|
||||
XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
CHECKSUM=$XPATH_RESULT
|
||||
|
||||
PKG_URL=$TARGET_URL/$PKG_PATH
|
||||
PKG_FILE=$(basename $PKG_PATH)
|
||||
PKG_PATH=$TMPDIR/$PKG_FILE
|
||||
|
||||
Debug "Download $PKG_URL to $PKG_PATH"
|
||||
Fetch $PKG_URL $PKG_PATH true
|
||||
|
||||
echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
Error "Fail to fetch $PKG_URL to $PKG_PATH"
|
||||
Debug "Checksum = $CHECKSUM"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
Inform "Initialize arm base"
|
||||
fetch_tizen_pkgs_init standard base
|
||||
Inform "fetch common packages"
|
||||
fetch_tizen_pkgs aarch64 gcc glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel keyutils keyutils-devel libkeyutils
|
||||
Inform "fetch coreclr packages"
|
||||
fetch_tizen_pkgs aarch64 lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs aarch64 libcom_err libcom_err-devel zlib zlib-devel libopenssl11 libopenssl1.1-devel krb5 krb5-devel
|
||||
|
||||
Inform "Initialize standard unified"
|
||||
fetch_tizen_pkgs_init standard unified
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs aarch64 gssdp gssdp-devel tizen-release
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
__ARM_SOFTFP_CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
__TIZEN_CROSSDIR="$__ARM_SOFTFP_CrossDir/tizen"
|
||||
|
||||
if [[ -z "$ROOTFS_DIR" ]]; then
|
||||
echo "ROOTFS_DIR is not defined."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
|
||||
mkdir -p $TIZEN_TMP_DIR
|
||||
|
||||
# Download files
|
||||
echo ">>Start downloading files"
|
||||
VERBOSE=1 $__ARM_SOFTFP_CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
|
||||
echo "<<Finish downloading files"
|
||||
|
||||
echo ">>Start constructing Tizen rootfs"
|
||||
TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm`
|
||||
cd $ROOTFS_DIR
|
||||
for f in $TIZEN_RPM_FILES; do
|
||||
rpm2cpio $f | cpio -idm --quiet
|
||||
done
|
||||
echo "<<Finish constructing Tizen rootfs"
|
||||
|
||||
# Cleanup tmp
|
||||
rm -rf $TIZEN_TMP_DIR
|
||||
|
||||
# Configure Tizen rootfs
|
||||
echo ">>Start configuring Tizen rootfs"
|
||||
ln -sfn asm-arm ./usr/include/asm
|
||||
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
|
||||
echo "<<Finish configuring Tizen rootfs"
|
|
@ -1,170 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
|
||||
VERBOSE=0
|
||||
fi
|
||||
|
||||
Log()
|
||||
{
|
||||
if [ $VERBOSE -ge $1 ]; then
|
||||
echo ${@:2}
|
||||
fi
|
||||
}
|
||||
|
||||
Inform()
|
||||
{
|
||||
Log 1 -e "\x1B[0;34m$@\x1B[m"
|
||||
}
|
||||
|
||||
Debug()
|
||||
{
|
||||
Log 2 -e "\x1B[0;32m$@\x1B[m"
|
||||
}
|
||||
|
||||
Error()
|
||||
{
|
||||
>&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
|
||||
}
|
||||
|
||||
Fetch()
|
||||
{
|
||||
URL=$1
|
||||
FILE=$2
|
||||
PROGRESS=$3
|
||||
if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
|
||||
CURL_OPT="--progress-bar"
|
||||
else
|
||||
CURL_OPT="--silent"
|
||||
fi
|
||||
curl $CURL_OPT $URL > $FILE
|
||||
}
|
||||
|
||||
hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
|
||||
hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
|
||||
hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
|
||||
|
||||
TMPDIR=$1
|
||||
if [ ! -d $TMPDIR ]; then
|
||||
TMPDIR=./tizen_tmp
|
||||
Debug "Create temporary directory : $TMPDIR"
|
||||
mkdir -p $TMPDIR
|
||||
fi
|
||||
|
||||
TIZEN_URL=http://download.tizen.org/snapshots/tizen
|
||||
BUILD_XML=build.xml
|
||||
REPOMD_XML=repomd.xml
|
||||
PRIMARY_XML=primary.xml
|
||||
TARGET_URL="http://__not_initialized"
|
||||
|
||||
Xpath_get()
|
||||
{
|
||||
XPATH_RESULT=''
|
||||
XPATH=$1
|
||||
XML_FILE=$2
|
||||
RESULT=$(xmllint --xpath $XPATH $XML_FILE)
|
||||
if [[ -z ${RESULT// } ]]; then
|
||||
Error "Can not find target from $XML_FILE"
|
||||
Debug "Xpath = $XPATH"
|
||||
exit 1
|
||||
fi
|
||||
XPATH_RESULT=$RESULT
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs_init()
|
||||
{
|
||||
TARGET=$1
|
||||
PROFILE=$2
|
||||
Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
|
||||
|
||||
TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
|
||||
if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
|
||||
mkdir -p $TMP_PKG_DIR
|
||||
|
||||
PKG_URL=$TIZEN_URL/$PROFILE/latest
|
||||
|
||||
BUILD_XML_URL=$PKG_URL/$BUILD_XML
|
||||
TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
|
||||
TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
|
||||
TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
|
||||
TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
|
||||
|
||||
Fetch $BUILD_XML_URL $TMP_BUILD
|
||||
|
||||
Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
|
||||
|
||||
TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
|
||||
Xpath_get $TARGET_XPATH $TMP_BUILD
|
||||
TARGET_PATH=$XPATH_RESULT
|
||||
TARGET_URL=$PKG_URL/$TARGET_PATH
|
||||
|
||||
REPOMD_URL=$TARGET_URL/repodata/repomd.xml
|
||||
PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
|
||||
|
||||
Fetch $REPOMD_URL $TMP_REPOMD
|
||||
|
||||
Debug "fetch $REPOMD_URL to $TMP_REPOMD"
|
||||
|
||||
Xpath_get $PRIMARY_XPATH $TMP_REPOMD
|
||||
PRIMARY_XML_PATH=$XPATH_RESULT
|
||||
PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
|
||||
|
||||
Fetch $PRIMARY_URL $TMP_PRIMARYGZ
|
||||
|
||||
Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
|
||||
|
||||
gunzip $TMP_PRIMARYGZ
|
||||
|
||||
Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs()
|
||||
{
|
||||
ARCH=$1
|
||||
PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
|
||||
|
||||
PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
|
||||
|
||||
for pkg in ${@:2}
|
||||
do
|
||||
Inform "Fetching... $pkg"
|
||||
XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
PKG_PATH=$XPATH_RESULT
|
||||
|
||||
XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
CHECKSUM=$XPATH_RESULT
|
||||
|
||||
PKG_URL=$TARGET_URL/$PKG_PATH
|
||||
PKG_FILE=$(basename $PKG_PATH)
|
||||
PKG_PATH=$TMPDIR/$PKG_FILE
|
||||
|
||||
Debug "Download $PKG_URL to $PKG_PATH"
|
||||
Fetch $PKG_URL $PKG_PATH true
|
||||
|
||||
echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
Error "Fail to fetch $PKG_URL to $PKG_PATH"
|
||||
Debug "Checksum = $CHECKSUM"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
Inform "Initialize arm base"
|
||||
fetch_tizen_pkgs_init standard base
|
||||
Inform "fetch common packages"
|
||||
fetch_tizen_pkgs armv7l gcc gcc-devel-static glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel keyutils keyutils-devel libkeyutils
|
||||
Inform "fetch coreclr packages"
|
||||
fetch_tizen_pkgs armv7l lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs armv7l libcom_err libcom_err-devel zlib zlib-devel libopenssl11 libopenssl1.1-devel krb5 krb5-devel
|
||||
|
||||
Inform "Initialize standard unified"
|
||||
fetch_tizen_pkgs_init standard unified
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs armv7l gssdp gssdp-devel tizen-release
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
lang en_US.UTF-8
|
||||
keyboard us
|
||||
timezone --utc Asia/Seoul
|
||||
|
||||
part / --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label rootfs --fsoptions=defaults,noatime
|
||||
|
||||
rootpw tizen
|
||||
desktop --autologinuser=root
|
||||
user --name root --groups audio,video --password 'tizen'
|
||||
|
||||
repo --name=standard --baseurl=http://download.tizen.org/releases/milestone/tizen/unified/latest/repos/standard/packages/ --ssl_verify=no
|
||||
repo --name=base --baseurl=http://download.tizen.org/releases/milestone/tizen/base/latest/repos/standard/packages/ --ssl_verify=no
|
||||
|
||||
%packages
|
||||
tar
|
||||
gzip
|
||||
|
||||
sed
|
||||
grep
|
||||
gawk
|
||||
perl
|
||||
|
||||
binutils
|
||||
findutils
|
||||
util-linux
|
||||
lttng-ust
|
||||
userspace-rcu
|
||||
procps-ng
|
||||
tzdata
|
||||
ca-certificates
|
||||
|
||||
|
||||
### Core FX
|
||||
libicu
|
||||
libunwind
|
||||
iputils
|
||||
zlib
|
||||
krb5
|
||||
libcurl
|
||||
libopenssl
|
||||
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
### Update /tmp privilege
|
||||
chmod 777 /tmp
|
||||
####################################
|
||||
|
||||
%end
|
2
eng/common/cross/armv6/sources.list.buster
Normal file
2
eng/common/cross/armv6/sources.list.buster
Normal file
|
@ -0,0 +1,2 @@
|
|||
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
|
||||
deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
|
|
@ -107,12 +107,12 @@ __AndroidPackages+=" liblzma"
|
|||
__AndroidPackages+=" krb5"
|
||||
__AndroidPackages+=" openssl"
|
||||
|
||||
for path in $(wget -qO- http://termux.net/dists/stable/main/binary-$__AndroidArch/Packages |\
|
||||
for path in $(wget -qO- https://packages.termux.dev/termux-main-21/dists/stable/main/binary-$__AndroidArch/Packages |\
|
||||
grep -A15 "Package: \(${__AndroidPackages// /\\|}\)" | grep -v "static\|tool" | grep Filename); do
|
||||
|
||||
if [[ "$path" != "Filename:" ]]; then
|
||||
echo "Working on: $path"
|
||||
wget -qO- http://termux.net/$path | dpkg -x - "$__TmpDir"
|
||||
wget -qO- https://packages.termux.dev/termux-main-21/$path | dpkg -x - "$__TmpDir"
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
@ -4,22 +4,30 @@ set -e
|
|||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [--skipunmount] --rootfsdir <directory>]"
|
||||
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
||||
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.9 or alpine3.13. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||
echo " for FreeBSD can be: freebsd11, freebsd12, freebsd13"
|
||||
echo " for illumos can be: illumos."
|
||||
echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [llvmx[.y]] [--skipunmount] --rootfsdir <directory>]"
|
||||
echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
|
||||
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine"
|
||||
echo " for alpine can be specified with version: alpineX.YY or alpineedge"
|
||||
echo " for FreeBSD can be: freebsd12, freebsd13"
|
||||
echo " for illumos can be: illumos"
|
||||
echo " for Haiku can be: haiku."
|
||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
|
||||
echo "llvmx[.y] - optional, LLVM version for LLVM related packages."
|
||||
echo "--skipunmount - optional, will skip the unmount of rootfs folder."
|
||||
echo "--skipsigcheck - optional, will skip package signature checks (allowing untrusted packages)."
|
||||
echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
|
||||
echo "--jobs N - optional, restrict to N jobs."
|
||||
exit 1
|
||||
}
|
||||
|
||||
__CodeName=xenial
|
||||
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
__InitialDir=$PWD
|
||||
__BuildArch=arm
|
||||
__AlpineArch=armv7
|
||||
__FreeBSDArch=arm
|
||||
__FreeBSDMachineArch=armv7
|
||||
__IllumosArch=arm7
|
||||
__HaikuArch=arm
|
||||
__QEMUArch=arm
|
||||
__UbuntuArch=armhf
|
||||
__UbuntuRepo="http://ports.ubuntu.com/"
|
||||
|
@ -32,24 +40,27 @@ __UbuntuPackages="build-essential"
|
|||
__AlpinePackages="alpine-base"
|
||||
__AlpinePackages+=" build-base"
|
||||
__AlpinePackages+=" linux-headers"
|
||||
__AlpinePackagesEdgeCommunity=" lldb-dev"
|
||||
__AlpinePackagesEdgeMain+=" python3"
|
||||
__AlpinePackagesEdgeMain+=" libedit"
|
||||
__AlpinePackages+=" lldb-dev"
|
||||
__AlpinePackages+=" python3"
|
||||
__AlpinePackages+=" libedit"
|
||||
|
||||
# symlinks fixer
|
||||
__UbuntuPackages+=" symlinks"
|
||||
|
||||
# CoreCLR and CoreFX dependencies
|
||||
# runtime dependencies
|
||||
__UbuntuPackages+=" libicu-dev"
|
||||
__UbuntuPackages+=" liblttng-ust-dev"
|
||||
__UbuntuPackages+=" libunwind8-dev"
|
||||
__UbuntuPackages+=" libnuma-dev"
|
||||
|
||||
__AlpinePackages+=" gettext-dev"
|
||||
__AlpinePackages+=" icu-dev"
|
||||
__AlpinePackages+=" libunwind-dev"
|
||||
__AlpinePackages+=" lttng-ust-dev"
|
||||
__AlpinePackages+=" compiler-rt"
|
||||
__AlpinePackages+=" numactl-dev"
|
||||
|
||||
# CoreFX dependencies
|
||||
# runtime libraries' dependencies
|
||||
__UbuntuPackages+=" libcurl4-openssl-dev"
|
||||
__UbuntuPackages+=" libkrb5-dev"
|
||||
__UbuntuPackages+=" libssl-dev"
|
||||
|
@ -60,36 +71,76 @@ __AlpinePackages+=" krb5-dev"
|
|||
__AlpinePackages+=" openssl-dev"
|
||||
__AlpinePackages+=" zlib-dev"
|
||||
|
||||
__FreeBSDBase="12.2-RELEASE"
|
||||
__FreeBSDPkg="1.12.0"
|
||||
__FreeBSDBase="12.4-RELEASE"
|
||||
__FreeBSDPkg="1.17.0"
|
||||
__FreeBSDABI="12"
|
||||
__FreeBSDPackages="libunwind"
|
||||
__FreeBSDPackages+=" icu"
|
||||
__FreeBSDPackages+=" libinotify"
|
||||
__FreeBSDPackages+=" lttng-ust"
|
||||
__FreeBSDPackages+=" openssl"
|
||||
__FreeBSDPackages+=" krb5"
|
||||
__FreeBSDPackages+=" terminfo-db"
|
||||
|
||||
__IllumosPackages="icu-64.2nb2"
|
||||
__IllumosPackages+=" mit-krb5-1.16.2nb4"
|
||||
__IllumosPackages+=" openssl-1.1.1e"
|
||||
__IllumosPackages+=" zlib-1.2.11"
|
||||
__IllumosPackages="icu"
|
||||
__IllumosPackages+=" mit-krb5"
|
||||
__IllumosPackages+=" openssl"
|
||||
__IllumosPackages+=" zlib"
|
||||
|
||||
__HaikuPackages="gcc_syslibs"
|
||||
__HaikuPackages+=" gcc_syslibs_devel"
|
||||
__HaikuPackages+=" gmp"
|
||||
__HaikuPackages+=" gmp_devel"
|
||||
__HaikuPackages+=" icu66"
|
||||
__HaikuPackages+=" icu66_devel"
|
||||
__HaikuPackages+=" krb5"
|
||||
__HaikuPackages+=" krb5_devel"
|
||||
__HaikuPackages+=" libiconv"
|
||||
__HaikuPackages+=" libiconv_devel"
|
||||
__HaikuPackages+=" llvm12_libunwind"
|
||||
__HaikuPackages+=" llvm12_libunwind_devel"
|
||||
__HaikuPackages+=" mpfr"
|
||||
__HaikuPackages+=" mpfr_devel"
|
||||
__HaikuPackages+=" openssl"
|
||||
__HaikuPackages+=" openssl_devel"
|
||||
__HaikuPackages+=" zlib"
|
||||
__HaikuPackages+=" zlib_devel"
|
||||
|
||||
# ML.NET dependencies
|
||||
__UbuntuPackages+=" libomp5"
|
||||
__UbuntuPackages+=" libomp-dev"
|
||||
|
||||
# Taken from https://github.com/alpinelinux/alpine-chroot-install/blob/6d08f12a8a70dd9b9dc7d997c88aa7789cc03c42/alpine-chroot-install#L85-L133
|
||||
__AlpineKeys='
|
||||
4a6a0840:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yHJxQgsHQREclQu4Ohe\nqxTxd1tHcNnvnQTu/UrTky8wWvgXT+jpveroeWWnzmsYlDI93eLI2ORakxb3gA2O\nQ0Ry4ws8vhaxLQGC74uQR5+/yYrLuTKydFzuPaS1dK19qJPXB8GMdmFOijnXX4SA\njixuHLe1WW7kZVtjL7nufvpXkWBGjsfrvskdNA/5MfxAeBbqPgaq0QMEfxMAn6/R\nL5kNepi/Vr4S39Xvf2DzWkTLEK8pcnjNkt9/aafhWqFVW7m3HCAII6h/qlQNQKSo\nGuH34Q8GsFG30izUENV9avY7hSLq7nggsvknlNBZtFUcmGoQrtx3FmyYsIC8/R+B\nywIDAQAB
|
||||
5243ef4b:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvNijDxJ8kloskKQpJdx+\nmTMVFFUGDoDCbulnhZMJoKNkSuZOzBoFC94omYPtxnIcBdWBGnrm6ncbKRlR+6oy\nDO0W7c44uHKCFGFqBhDasdI4RCYP+fcIX/lyMh6MLbOxqS22TwSLhCVjTyJeeH7K\naA7vqk+QSsF4TGbYzQDDpg7+6aAcNzg6InNePaywA6hbT0JXbxnDWsB+2/LLSF2G\nmnhJlJrWB1WGjkz23ONIWk85W4S0XB/ewDefd4Ly/zyIciastA7Zqnh7p3Ody6Q0\nsS2MJzo7p3os1smGjUF158s6m/JbVh4DN6YIsxwl2OjDOz9R0OycfJSDaBVIGZzg\ncQIDAQAB
|
||||
524d27bb:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj\nlN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG\ne8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p\niWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0\n64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+\nxrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL\nVQIDAQAB
|
||||
5261cecb:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlzMkl7b5PBdfMzGdCT0\ncGloRr5xGgVmsdq5EtJvFkFAiN8Ac9MCFy/vAFmS8/7ZaGOXoCDWbYVLTLOO2qtX\nyHRl+7fJVh2N6qrDDFPmdgCi8NaE+3rITWXGrrQ1spJ0B6HIzTDNEjRKnD4xyg4j\ng01FMcJTU6E+V2JBY45CKN9dWr1JDM/nei/Pf0byBJlMp/mSSfjodykmz4Oe13xB\nCa1WTwgFykKYthoLGYrmo+LKIGpMoeEbY1kuUe04UiDe47l6Oggwnl+8XD1MeRWY\nsWgj8sF4dTcSfCMavK4zHRFFQbGp/YFJ/Ww6U9lA3Vq0wyEI6MCMQnoSMFwrbgZw\nwwIDAQAB
|
||||
58199dcc:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3v8/ye/V/t5xf4JiXLXa\nhWFRozsnmn3hobON20GdmkrzKzO/eUqPOKTpg2GtvBhK30fu5oY5uN2ORiv2Y2ht\neLiZ9HVz3XP8Fm9frha60B7KNu66FO5P2o3i+E+DWTPqqPcCG6t4Znk2BypILcit\nwiPKTsgbBQR2qo/cO01eLLdt6oOzAaF94NH0656kvRewdo6HG4urbO46tCAizvCR\nCA7KGFMyad8WdKkTjxh8YLDLoOCtoZmXmQAiwfRe9pKXRH/XXGop8SYptLqyVVQ+\ntegOD9wRs2tOlgcLx4F/uMzHN7uoho6okBPiifRX+Pf38Vx+ozXh056tjmdZkCaV\naQIDAQAB
|
||||
58cbb476:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoSPnuAGKtRIS5fEgYPXD\n8pSGvKAmIv3A08LBViDUe+YwhilSHbYXUEAcSH1KZvOo1WT1x2FNEPBEFEFU1Eyc\n+qGzbA03UFgBNvArurHQ5Z/GngGqE7IarSQFSoqewYRtFSfp+TL9CUNBvM0rT7vz\n2eMu3/wWG+CBmb92lkmyWwC1WSWFKO3x8w+Br2IFWvAZqHRt8oiG5QtYvcZL6jym\nY8T6sgdDlj+Y+wWaLHs9Fc+7vBuyK9C4O1ORdMPW15qVSl4Lc2Wu1QVwRiKnmA+c\nDsH/m7kDNRHM7TjWnuj+nrBOKAHzYquiu5iB3Qmx+0gwnrSVf27Arc3ozUmmJbLj\nzQIDAQAB
|
||||
58e4f17d:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBxJN9ErBgdRcPr5g4hV\nqyUSGZEKuvQliq2Z9SRHLh2J43+EdB6A+yzVvLnzcHVpBJ+BZ9RV30EM9guck9sh\nr+bryZcRHyjG2wiIEoduxF2a8KeWeQH7QlpwGhuobo1+gA8L0AGImiA6UP3LOirl\nI0G2+iaKZowME8/tydww4jx5vG132JCOScMjTalRsYZYJcjFbebQQolpqRaGB4iG\nWqhytWQGWuKiB1A22wjmIYf3t96l1Mp+FmM2URPxD1gk/BIBnX7ew+2gWppXOK9j\n1BJpo0/HaX5XoZ/uMqISAAtgHZAqq+g3IUPouxTphgYQRTRYpz2COw3NF43VYQrR\nbQIDAQAB
|
||||
60ac2099:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwR4uJVtJOnOFGchnMW5Y\nj5/waBdG1u5BTMlH+iQMcV5+VgWhmpZHJCBz3ocD+0IGk2I68S5TDOHec/GSC0lv\n6R9o6F7h429GmgPgVKQsc8mPTPtbjJMuLLs4xKc+viCplXc0Nc0ZoHmCH4da6fCV\ntdpHQjVe6F9zjdquZ4RjV6R6JTiN9v924dGMAkbW/xXmamtz51FzondKC52Gh8Mo\n/oA0/T0KsCMCi7tb4QNQUYrf+Xcha9uus4ww1kWNZyfXJB87a2kORLiWMfs2IBBJ\nTmZ2Fnk0JnHDb8Oknxd9PvJPT0mvyT8DA+KIAPqNvOjUXP4bnjEHJcoCP9S5HkGC\nIQIDAQAB
|
||||
6165ee59:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAutQkua2CAig4VFSJ7v54\nALyu/J1WB3oni7qwCZD3veURw7HxpNAj9hR+S5N/pNeZgubQvJWyaPuQDm7PTs1+\ntFGiYNfAsiibX6Rv0wci3M+z2XEVAeR9Vzg6v4qoofDyoTbovn2LztaNEjTkB+oK\ntlvpNhg1zhou0jDVYFniEXvzjckxswHVb8cT0OMTKHALyLPrPOJzVtM9C1ew2Nnc\n3848xLiApMu3NBk0JqfcS3Bo5Y2b1FRVBvdt+2gFoKZix1MnZdAEZ8xQzL/a0YS5\nHd0wj5+EEKHfOd3A75uPa/WQmA+o0cBFfrzm69QDcSJSwGpzWrD1ScH3AK8nWvoj\nv7e9gukK/9yl1b4fQQ00vttwJPSgm9EnfPHLAtgXkRloI27H6/PuLoNvSAMQwuCD\nhQRlyGLPBETKkHeodfLoULjhDi1K2gKJTMhtbnUcAA7nEphkMhPWkBpgFdrH+5z4\nLxy+3ek0cqcI7K68EtrffU8jtUj9LFTUC8dERaIBs7NgQ/LfDbDfGh9g6qVj1hZl\nk9aaIPTm/xsi8v3u+0qaq7KzIBc9s59JOoA8TlpOaYdVgSQhHHLBaahOuAigH+VI\nisbC9vmqsThF2QdDtQt37keuqoda2E6sL7PUvIyVXDRfwX7uMDjlzTxHTymvq2Ck\nhtBqojBnThmjJQFgZXocHG8CAwEAAQ==
|
||||
61666e3f:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlEyxkHggKCXC2Wf5Mzx4\nnZLFZvU2bgcA3exfNPO/g1YunKfQY+Jg4fr6tJUUTZ3XZUrhmLNWvpvSwDS19ZmC\nIXOu0+V94aNgnhMsk9rr59I8qcbsQGIBoHzuAl8NzZCgdbEXkiY90w1skUw8J57z\nqCsMBydAueMXuWqF5nGtYbi5vHwK42PffpiZ7G5Kjwn8nYMW5IZdL6ZnMEVJUWC9\nI4waeKg0yskczYDmZUEAtrn3laX9677ToCpiKrvmZYjlGl0BaGp3cxggP2xaDbUq\nqfFxWNgvUAb3pXD09JM6Mt6HSIJaFc9vQbrKB9KT515y763j5CC2KUsilszKi3mB\nHYe5PoebdjS7D1Oh+tRqfegU2IImzSwW3iwA7PJvefFuc/kNIijfS/gH/cAqAK6z\nbhdOtE/zc7TtqW2Wn5Y03jIZdtm12CxSxwgtCF1NPyEWyIxAQUX9ACb3M0FAZ61n\nfpPrvwTaIIxxZ01L3IzPLpbc44x/DhJIEU+iDt6IMTrHOphD9MCG4631eIdB0H1b\n6zbNX1CXTsafqHRFV9XmYYIeOMggmd90s3xIbEujA6HKNP/gwzO6CDJ+nHFDEqoF\nSkxRdTkEqjTjVKieURW7Swv7zpfu5PrsrrkyGnsRrBJJzXlm2FOOxnbI2iSL1B5F\nrO5kbUxFeZUIDq+7Yv4kLWcCAwEAAQ==
|
||||
616a9724:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnC+bR4bHf/L6QdU4puhQ\ngl1MHePszRC38bzvVFDUJsmCaMCL2suCs2A2yxAgGb9pu9AJYLAmxQC4mM3jNqhg\n/E7yuaBbek3O02zN/ctvflJ250wZCy+z0ZGIp1ak6pu1j14IwHokl9j36zNfGtfv\nADVOcdpWITFFlPqwq1qt/H3UsKVmtiF3BNWWTeUEQwKvlU8ymxgS99yn0+4OPyNT\nL3EUeS+NQJtDS01unau0t7LnjUXn+XIneWny8bIYOQCuVR6s/gpIGuhBaUqwaJOw\n7jkJZYF2Ij7uPb4b5/R3vX2FfxxqEHqssFSg8FFUNTZz3qNZs0CRVyfA972g9WkJ\nhPfn31pQYil4QGRibCMIeU27YAEjXoqfJKEPh4UWMQsQLrEfdGfb8VgwrPbniGfU\nL3jKJR3VAafL9330iawzVQDlIlwGl6u77gEXMl9K0pfazunYhAp+BMP+9ot5ckK+\nosmrqj11qMESsAj083GeFdfV3pXEIwUytaB0AKEht9DbqUfiE/oeZ/LAXgySMtVC\nsbC4ESmgVeY2xSBIJdDyUap7FR49GGrw0W49NUv9gRgQtGGaNVQQO9oGL2PBC41P\niWF9GLoX30HIz1P8PF/cZvicSSPkQf2Z6TV+t0ebdGNS5DjapdnCrq8m9Z0pyKsQ\nuxAL2a7zX8l5i1CZh1ycUGsCAwEAAQ==
|
||||
616abc23:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0MfCDrhODRCIxR9Dep1s\neXafh5CE5BrF4WbCgCsevyPIdvTeyIaW4vmO3bbG4VzhogDZju+R3IQYFuhoXP5v\nY+zYJGnwrgz3r5wYAvPnLEs1+dtDKYOgJXQj+wLJBW1mzRDL8FoRXOe5iRmn1EFS\nwZ1DoUvyu7/J5r0itKicZp3QKED6YoilXed+1vnS4Sk0mzN4smuMR9eO1mMCqNp9\n9KTfRDHTbakIHwasECCXCp50uXdoW6ig/xUAFanpm9LtK6jctNDbXDhQmgvAaLXZ\nLvFqoaYJ/CvWkyYCgL6qxvMvVmPoRv7OPcyni4xR/WgWa0MSaEWjgPx3+yj9fiMA\n1S02pFWFDOr5OUF/O4YhFJvUCOtVsUPPfA/Lj6faL0h5QI9mQhy5Zb9TTaS9jB6p\nLw7u0dJlrjFedk8KTJdFCcaGYHP6kNPnOxMylcB/5WcztXZVQD5WpCicGNBxCGMm\nW64SgrV7M07gQfL/32QLsdqPUf0i8hoVD8wfQ3EpbQzv6Fk1Cn90bZqZafg8XWGY\nwddhkXk7egrr23Djv37V2okjzdqoyLBYBxMz63qQzFoAVv5VoY2NDTbXYUYytOvG\nGJ1afYDRVWrExCech1mX5ZVUB1br6WM+psFLJFoBFl6mDmiYt0vMYBddKISsvwLl\nIJQkzDwtXzT2cSjoj3T5QekCAwEAAQ==
|
||||
616ac3bc:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvaaoSLab+IluixwKV5Od\n0gib2YurjPatGIbn5Ov2DLUFYiebj2oJINXJSwUOO+4WcuHFEqiL/1rya+k5hLZt\nhnPL1tn6QD4rESznvGSasRCQNT2vS/oyZbTYJRyAtFkEYLlq0t3S3xBxxHWuvIf0\nqVxVNYpQWyM3N9RIeYBR/euXKJXileSHk/uq1I5wTC0XBIHWcthczGN0m9wBEiWS\n0m3cnPk4q0Ea8mUJ91Rqob19qETz6VbSPYYpZk3qOycjKosuwcuzoMpwU8KRiMFd\n5LHtX0Hx85ghGsWDVtS0c0+aJa4lOMGvJCAOvDfqvODv7gKlCXUpgumGpLdTmaZ8\n1RwqspAe3IqBcdKTqRD4m2mSg23nVx2FAY3cjFvZQtfooT7q1ItRV5RgH6FhQSl7\n+6YIMJ1Bf8AAlLdRLpg+doOUGcEn+pkDiHFgI8ylH1LKyFKw+eXaAml/7DaWZk1d\ndqggwhXOhc/UUZFQuQQ8A8zpA13PcbC05XxN2hyP93tCEtyynMLVPtrRwDnHxFKa\nqKzs3rMDXPSXRn3ZZTdKH3069ApkEjQdpcwUh+EmJ1Ve/5cdtzT6kKWCjKBFZP/s\n91MlRrX2BTRdHaU5QJkUheUtakwxuHrdah2F94lRmsnQlpPr2YseJu6sIE+Dnx4M\nCfhdVbQL2w54R645nlnohu8CAwEAAQ==
|
||||
616adfeb:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0BFD1D4lIxQcsqEpQzU\npNCYM3aP1V/fxxVdT4DWvSI53JHTwHQamKdMWtEXetWVbP5zSROniYKFXd/xrD9X\n0jiGHey3lEtylXRIPxe5s+wXoCmNLcJVnvTcDtwx/ne2NLHxp76lyc25At+6RgE6\nADjLVuoD7M4IFDkAsd8UQ8zM0Dww9SylIk/wgV3ZkifecvgUQRagrNUdUjR56EBZ\nraQrev4hhzOgwelT0kXCu3snbUuNY/lU53CoTzfBJ5UfEJ5pMw1ij6X0r5S9IVsy\nKLWH1hiO0NzU2c8ViUYCly4Fe9xMTFc6u2dy/dxf6FwERfGzETQxqZvSfrRX+GLj\n/QZAXiPg5178hT/m0Y3z5IGenIC/80Z9NCi+byF1WuJlzKjDcF/TU72zk0+PNM/H\nKuppf3JT4DyjiVzNC5YoWJT2QRMS9KLP5iKCSThwVceEEg5HfhQBRT9M6KIcFLSs\nmFjx9kNEEmc1E8hl5IR3+3Ry8G5/bTIIruz14jgeY9u5jhL8Vyyvo41jgt9sLHR1\n/J1TxKfkgksYev7PoX6/ZzJ1ksWKZY5NFoDXTNYUgzFUTOoEaOg3BAQKadb3Qbbq\nXIrxmPBdgrn9QI7NCgfnAY3Tb4EEjs3ON/BNyEhUENcXOH6I1NbcuBQ7g9P73kE4\nVORdoc8MdJ5eoKBpO8Ww8HECAwEAAQ==
|
||||
616ae350:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyduVzi1mWm+lYo2Tqt/0\nXkCIWrDNP1QBMVPrE0/ZlU2bCGSoo2Z9FHQKz/mTyMRlhNqTfhJ5qU3U9XlyGOPJ\npiM+b91g26pnpXJ2Q2kOypSgOMOPA4cQ42PkHBEqhuzssfj9t7x47ppS94bboh46\nxLSDRff/NAbtwTpvhStV3URYkxFG++cKGGa5MPXBrxIp+iZf9GnuxVdST5PGiVGP\nODL/b69sPJQNbJHVquqUTOh5Ry8uuD2WZuXfKf7/C0jC/ie9m2+0CttNu9tMciGM\nEyKG1/Xhk5iIWO43m4SrrT2WkFlcZ1z2JSf9Pjm4C2+HovYpihwwdM/OdP8Xmsnr\nDzVB4YvQiW+IHBjStHVuyiZWc+JsgEPJzisNY0Wyc/kNyNtqVKpX6dRhMLanLmy+\nf53cCSI05KPQAcGj6tdL+D60uKDkt+FsDa0BTAobZ31OsFVid0vCXtsbplNhW1IF\nHwsGXBTVcfXg44RLyL8Lk/2dQxDHNHzAUslJXzPxaHBLmt++2COa2EI1iWlvtznk\nOk9WP8SOAIj+xdqoiHcC4j72BOVVgiITIJNHrbppZCq6qPR+fgXmXa+sDcGh30m6\n9Wpbr28kLMSHiENCWTdsFij+NQTd5S47H7XTROHnalYDuF1RpS+DpQidT5tUimaT\nJZDr++FjKrnnijbyNF8b98UCAwEAAQ==
|
||||
616db30d:MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnpUpyWDWjlUk3smlWeA0\nlIMW+oJ38t92CRLHH3IqRhyECBRW0d0aRGtq7TY8PmxjjvBZrxTNDpJT6KUk4LRm\na6A6IuAI7QnNK8SJqM0DLzlpygd7GJf8ZL9SoHSH+gFsYF67Cpooz/YDqWrlN7Vw\ntO00s0B+eXy+PCXYU7VSfuWFGK8TGEv6HfGMALLjhqMManyvfp8hz3ubN1rK3c8C\nUS/ilRh1qckdbtPvoDPhSbTDmfU1g/EfRSIEXBrIMLg9ka/XB9PvWRrekrppnQzP\nhP9YE3x/wbFc5QqQWiRCYyQl/rgIMOXvIxhkfe8H5n1Et4VAorkpEAXdsfN8KSVv\nLSMazVlLp9GYq5SUpqYX3KnxdWBgN7BJoZ4sltsTpHQ/34SXWfu3UmyUveWj7wp0\nx9hwsPirVI00EEea9AbP7NM2rAyu6ukcm4m6ATd2DZJIViq2es6m60AE6SMCmrQF\nwmk4H/kdQgeAELVfGOm2VyJ3z69fQuywz7xu27S6zTKi05Qlnohxol4wVb6OB7qG\nLPRtK9ObgzRo/OPumyXqlzAi/Yvyd1ZQk8labZps3e16bQp8+pVPiumWioMFJDWV\nGZjCmyMSU8V6MB6njbgLHoyg2LCukCAeSjbPGGGYhnKLm1AKSoJh3IpZuqcKCk5C\n8CM1S15HxV78s9dFntEqIokCAwEAAQ==
|
||||
'
|
||||
__Keyring=
|
||||
__SkipSigCheck=0
|
||||
__UseMirror=0
|
||||
|
||||
__UnprocessedBuildArgs=
|
||||
while :; do
|
||||
if [ $# -le 0 ]; then
|
||||
if [[ "$#" -le 0 ]]; then
|
||||
break
|
||||
fi
|
||||
|
||||
lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
|
||||
lowerI="$(echo "$1" | tr "[:upper:]" "[:lower:]")"
|
||||
case $lowerI in
|
||||
-?|-h|--help)
|
||||
-\?|-h|--help)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
|
@ -104,6 +155,8 @@ while :; do
|
|||
__UbuntuArch=arm64
|
||||
__AlpineArch=aarch64
|
||||
__QEMUArch=aarch64
|
||||
__FreeBSDArch=arm64
|
||||
__FreeBSDMachineArch=aarch64
|
||||
;;
|
||||
armel)
|
||||
__BuildArch=armel
|
||||
|
@ -111,129 +164,211 @@ while :; do
|
|||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__CodeName=jessie
|
||||
;;
|
||||
armv6)
|
||||
__BuildArch=armv6
|
||||
__UbuntuArch=armhf
|
||||
__QEMUArch=arm
|
||||
__UbuntuRepo="http://raspbian.raspberrypi.org/raspbian/"
|
||||
__CodeName=buster
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
|
||||
if [[ -e "/usr/share/keyrings/raspbian-archive-keyring.gpg" ]]; then
|
||||
__Keyring="--keyring /usr/share/keyrings/raspbian-archive-keyring.gpg"
|
||||
fi
|
||||
;;
|
||||
riscv64)
|
||||
__BuildArch=riscv64
|
||||
__AlpineArch=riscv64
|
||||
__AlpinePackages="${__AlpinePackages// lldb-dev/}"
|
||||
__QEMUArch=riscv64
|
||||
__UbuntuArch=riscv64
|
||||
__UbuntuRepo="http://deb.debian.org/debian-ports"
|
||||
__UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}"
|
||||
unset __LLDB_Package
|
||||
|
||||
if [[ -e "/usr/share/keyrings/debian-ports-archive-keyring.gpg" ]]; then
|
||||
__Keyring="--keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring"
|
||||
fi
|
||||
;;
|
||||
ppc64le)
|
||||
__BuildArch=ppc64le
|
||||
__AlpineArch=ppc64le
|
||||
__QEMUArch=ppc64le
|
||||
__UbuntuArch=ppc64el
|
||||
__UbuntuRepo="http://ports.ubuntu.com/ubuntu-ports/"
|
||||
__UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}"
|
||||
__UbuntuPackages="${__UbuntuPackages// libomp-dev/}"
|
||||
__UbuntuPackages="${__UbuntuPackages// libomp5/}"
|
||||
unset __LLDB_Package
|
||||
;;
|
||||
s390x)
|
||||
__BuildArch=s390x
|
||||
__AlpineArch=s390x
|
||||
__QEMUArch=s390x
|
||||
__UbuntuArch=s390x
|
||||
__UbuntuRepo="http://ports.ubuntu.com/ubuntu-ports/"
|
||||
__UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libunwind8-dev//')
|
||||
__UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp-dev//')
|
||||
__UbuntuPackages=$(echo ${__UbuntuPackages} | sed 's/ libomp5//')
|
||||
__UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}"
|
||||
__UbuntuPackages="${__UbuntuPackages// libomp-dev/}"
|
||||
__UbuntuPackages="${__UbuntuPackages// libomp5/}"
|
||||
unset __LLDB_Package
|
||||
;;
|
||||
x64)
|
||||
__BuildArch=x64
|
||||
__AlpineArch=x86_64
|
||||
__UbuntuArch=amd64
|
||||
__FreeBSDArch=amd64
|
||||
__FreeBSDMachineArch=amd64
|
||||
__illumosArch=x86_64
|
||||
__HaikuArch=x86_64
|
||||
__UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
|
||||
;;
|
||||
x86)
|
||||
__BuildArch=x86
|
||||
__UbuntuArch=i386
|
||||
__AlpineArch=x86
|
||||
__UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
|
||||
;;
|
||||
lldb3.6)
|
||||
__LLDB_Package="lldb-3.6-dev"
|
||||
;;
|
||||
lldb3.8)
|
||||
__LLDB_Package="lldb-3.8-dev"
|
||||
;;
|
||||
lldb3.9)
|
||||
__LLDB_Package="liblldb-3.9-dev"
|
||||
;;
|
||||
lldb4.0)
|
||||
__LLDB_Package="liblldb-4.0-dev"
|
||||
;;
|
||||
lldb5.0)
|
||||
__LLDB_Package="liblldb-5.0-dev"
|
||||
;;
|
||||
lldb6.0)
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
lldb*)
|
||||
version="${lowerI/lldb/}"
|
||||
parts=(${version//./ })
|
||||
|
||||
# for versions > 6.0, lldb has dropped the minor version
|
||||
if [[ "${parts[0]}" -gt 6 ]]; then
|
||||
version="${parts[0]}"
|
||||
fi
|
||||
|
||||
__LLDB_Package="liblldb-${version}-dev"
|
||||
;;
|
||||
no-lldb)
|
||||
unset __LLDB_Package
|
||||
;;
|
||||
llvm*)
|
||||
version="${lowerI/llvm/}"
|
||||
parts=(${version//./ })
|
||||
__LLVM_MajorVersion="${parts[0]}"
|
||||
__LLVM_MinorVersion="${parts[1]}"
|
||||
|
||||
# for versions > 6.0, llvm has dropped the minor version
|
||||
if [[ -z "$__LLVM_MinorVersion" && "$__LLVM_MajorVersion" -le 6 ]]; then
|
||||
__LLVM_MinorVersion=0;
|
||||
fi
|
||||
;;
|
||||
xenial) # Ubuntu 16.04
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
if [[ "$__CodeName" != "jessie" ]]; then
|
||||
__CodeName=xenial
|
||||
fi
|
||||
;;
|
||||
zesty) # Ubuntu 17.04
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
if [[ "$__CodeName" != "jessie" ]]; then
|
||||
__CodeName=zesty
|
||||
fi
|
||||
;;
|
||||
bionic) # Ubuntu 18.04
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
if [[ "$__CodeName" != "jessie" ]]; then
|
||||
__CodeName=bionic
|
||||
fi
|
||||
;;
|
||||
focal) # Ubuntu 20.04
|
||||
if [[ "$__CodeName" != "jessie" ]]; then
|
||||
__CodeName=focal
|
||||
fi
|
||||
;;
|
||||
jammy) # Ubuntu 22.04
|
||||
if [[ "$__CodeName" != "jessie" ]]; then
|
||||
__CodeName=jammy
|
||||
fi
|
||||
;;
|
||||
jessie) # Debian 8
|
||||
__CodeName=jessie
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
|
||||
if [[ -z "$__UbuntuRepo" ]]; then
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
fi
|
||||
;;
|
||||
stretch) # Debian 9
|
||||
__CodeName=stretch
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
|
||||
if [[ -z "$__UbuntuRepo" ]]; then
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
fi
|
||||
;;
|
||||
buster) # Debian 10
|
||||
__CodeName=buster
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
|
||||
if [[ -z "$__UbuntuRepo" ]]; then
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
fi
|
||||
;;
|
||||
bullseye) # Debian 11
|
||||
__CodeName=bullseye
|
||||
|
||||
if [[ -z "$__UbuntuRepo" ]]; then
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
fi
|
||||
;;
|
||||
sid) # Debian sid
|
||||
__CodeName=sid
|
||||
|
||||
if [[ -z "$__UbuntuRepo" ]]; then
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
fi
|
||||
;;
|
||||
tizen)
|
||||
if [ "$__BuildArch" != "armel" ] && [ "$__BuildArch" != "arm64" ]; then
|
||||
echo "Tizen is available only for armel and arm64."
|
||||
usage;
|
||||
exit 1;
|
||||
fi
|
||||
__CodeName=
|
||||
__UbuntuRepo=
|
||||
__Tizen=tizen
|
||||
;;
|
||||
alpine|alpine3.9)
|
||||
alpine*)
|
||||
__CodeName=alpine
|
||||
__UbuntuRepo=
|
||||
__AlpineVersion=3.9
|
||||
__AlpinePackagesEdgeMain+=" llvm11-libs"
|
||||
__AlpinePackagesEdgeMain+=" clang-libs"
|
||||
version="${lowerI/alpine/}"
|
||||
|
||||
if [[ "$version" == "edge" ]]; then
|
||||
__AlpineVersion=edge
|
||||
else
|
||||
parts=(${version//./ })
|
||||
__AlpineMajorVersion="${parts[0]}"
|
||||
__AlpineMinoVersion="${parts[1]}"
|
||||
__AlpineVersion="$__AlpineMajorVersion.$__AlpineMinoVersion"
|
||||
fi
|
||||
;;
|
||||
alpine3.13)
|
||||
__CodeName=alpine
|
||||
__UbuntuRepo=
|
||||
__AlpineVersion=3.13
|
||||
# Alpine 3.13 has all the packages we need in the 3.13 repository
|
||||
__AlpinePackages+=$__AlpinePackagesEdgeCommunity
|
||||
__AlpinePackagesEdgeCommunity=
|
||||
__AlpinePackages+=$__AlpinePackagesEdgeMain
|
||||
__AlpinePackagesEdgeMain=
|
||||
__AlpinePackages+=" llvm10-libs"
|
||||
;;
|
||||
freebsd11)
|
||||
__FreeBSDBase="11.3-RELEASE"
|
||||
__FreeBSDABI="11"
|
||||
;&
|
||||
freebsd12)
|
||||
__CodeName=freebsd
|
||||
__BuildArch=x64
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
freebsd13)
|
||||
__CodeName=freebsd
|
||||
__FreeBSDBase="13.0-RELEASE"
|
||||
__FreeBSDBase="13.2-RELEASE"
|
||||
__FreeBSDABI="13"
|
||||
__BuildArch=x64
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
illumos)
|
||||
__CodeName=illumos
|
||||
__BuildArch=x64
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
haiku)
|
||||
__CodeName=haiku
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
--skipunmount)
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
--skipsigcheck)
|
||||
__SkipSigCheck=1
|
||||
;;
|
||||
--rootfsdir|-rootfsdir)
|
||||
shift
|
||||
__RootfsDir=$1
|
||||
__RootfsDir="$1"
|
||||
;;
|
||||
--use-mirror)
|
||||
__UseMirror=1
|
||||
;;
|
||||
--use-jobs)
|
||||
shift
|
||||
MAXJOBS=$1
|
||||
;;
|
||||
*)
|
||||
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
|
||||
;;
|
||||
|
@ -242,85 +377,154 @@ while :; do
|
|||
shift
|
||||
done
|
||||
|
||||
if [ "$__BuildArch" == "armel" ]; then
|
||||
case "$__AlpineVersion" in
|
||||
3.14) __AlpinePackages+=" llvm11-libs" ;;
|
||||
3.15) __AlpinePackages+=" llvm12-libs" ;;
|
||||
3.16) __AlpinePackages+=" llvm13-libs" ;;
|
||||
3.17) __AlpinePackages+=" llvm15-libs" ;;
|
||||
edge) __AlpineLlvmLibsLookup=1 ;;
|
||||
*)
|
||||
if [[ "$__AlpineArch" =~ s390x|ppc64le ]]; then
|
||||
__AlpineVersion=3.15 # minimum version that supports lldb-dev
|
||||
__AlpinePackages+=" llvm12-libs"
|
||||
elif [[ "$__AlpineArch" == "x86" ]]; then
|
||||
__AlpineVersion=3.17 # minimum version that supports lldb-dev
|
||||
__AlpinePackages+=" llvm15-libs"
|
||||
elif [[ "$__AlpineArch" == "riscv64" ]]; then
|
||||
__AlpineLlvmLibsLookup=1
|
||||
__AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive)
|
||||
else
|
||||
__AlpineVersion=3.13 # 3.13 to maximize compatibility
|
||||
__AlpinePackages+=" llvm10-libs"
|
||||
|
||||
if [[ "$__AlpineArch" == "armv7" ]]; then
|
||||
__AlpinePackages="${__AlpinePackages//numactl-dev/}"
|
||||
fi
|
||||
fi
|
||||
esac
|
||||
|
||||
if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then
|
||||
# compiler-rt--static was merged in compiler-rt package in alpine 3.16
|
||||
# for older versions, we need compiler-rt--static, so replace the name
|
||||
__AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}"
|
||||
fi
|
||||
|
||||
if [[ "$__BuildArch" == "armel" ]]; then
|
||||
__LLDB_Package="lldb-3.5-dev"
|
||||
fi
|
||||
__UbuntuPackages+=" ${__LLDB_Package:-}"
|
||||
|
||||
if [ -z "$__RootfsDir" ] && [ ! -z "$ROOTFS_DIR" ]; then
|
||||
__RootfsDir=$ROOTFS_DIR
|
||||
if [[ "$__CodeName" == "xenial" && "$__UbuntuArch" == "armhf" ]]; then
|
||||
# libnuma-dev is not available on armhf for xenial
|
||||
__UbuntuPackages="${__UbuntuPackages//libnuma-dev/}"
|
||||
fi
|
||||
|
||||
if [ -z "$__RootfsDir" ]; then
|
||||
__UbuntuPackages+=" ${__LLDB_Package:-}"
|
||||
|
||||
if [[ -n "$__LLVM_MajorVersion" ]]; then
|
||||
__UbuntuPackages+=" libclang-common-${__LLVM_MajorVersion}${__LLVM_MinorVersion:+.$__LLVM_MinorVersion}-dev"
|
||||
fi
|
||||
|
||||
if [[ -z "$__RootfsDir" && -n "$ROOTFS_DIR" ]]; then
|
||||
__RootfsDir="$ROOTFS_DIR"
|
||||
fi
|
||||
|
||||
if [[ -z "$__RootfsDir" ]]; then
|
||||
__RootfsDir="$__CrossDir/../../../.tools/rootfs/$__BuildArch"
|
||||
fi
|
||||
|
||||
if [ -d "$__RootfsDir" ]; then
|
||||
if [ $__SkipUnmount == 0 ]; then
|
||||
umount $__RootfsDir/* || true
|
||||
if [[ -d "$__RootfsDir" ]]; then
|
||||
if [[ "$__SkipUnmount" == "0" ]]; then
|
||||
umount "$__RootfsDir"/* || true
|
||||
fi
|
||||
rm -rf $__RootfsDir
|
||||
rm -rf "$__RootfsDir"
|
||||
fi
|
||||
|
||||
mkdir -p $__RootfsDir
|
||||
mkdir -p "$__RootfsDir"
|
||||
__RootfsDir="$( cd "$__RootfsDir" && pwd )"
|
||||
|
||||
if [[ "$__CodeName" == "alpine" ]]; then
|
||||
__ApkToolsVersion=2.9.1
|
||||
__ApkToolsDir=$(mktemp -d)
|
||||
wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
|
||||
tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
|
||||
mkdir -p $__RootfsDir/usr/bin
|
||||
cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
|
||||
__ApkToolsVersion=2.12.11
|
||||
__ApkToolsSHA512SUM=53e57b49230da07ef44ee0765b9592580308c407a8d4da7125550957bb72cb59638e04f8892a18b584451c8d841d1c7cb0f0ab680cc323a3015776affaa3be33
|
||||
__ApkToolsDir="$(mktemp -d)"
|
||||
__ApkKeysDir="$(mktemp -d)"
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackages
|
||||
wget "https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic//v$__ApkToolsVersion/x86_64/apk.static" -P "$__ApkToolsDir"
|
||||
echo "$__ApkToolsSHA512SUM $__ApkToolsDir/apk.static" | sha512sum -c
|
||||
chmod +x "$__ApkToolsDir/apk.static"
|
||||
|
||||
if [[ -n "$__AlpinePackagesEdgeMain" ]]; then
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeMain
|
||||
if [[ -f "/usr/bin/qemu-$__QEMUArch-static" ]]; then
|
||||
mkdir -p "$__RootfsDir"/usr/bin
|
||||
cp -v "/usr/bin/qemu-$__QEMUArch-static" "$__RootfsDir/usr/bin"
|
||||
fi
|
||||
|
||||
if [[ -n "$__AlpinePackagesEdgeCommunity" ]]; then
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/community \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeCommunity
|
||||
if [[ "$__AlpineVersion" == "edge" ]]; then
|
||||
version=edge
|
||||
else
|
||||
version="v$__AlpineVersion"
|
||||
fi
|
||||
|
||||
rm -r $__ApkToolsDir
|
||||
for line in $__AlpineKeys; do
|
||||
id="${line%%:*}"
|
||||
content="${line#*:}"
|
||||
|
||||
echo -e "-----BEGIN PUBLIC KEY-----\n$content\n-----END PUBLIC KEY-----" > "$__ApkKeysDir/alpine-devel@lists.alpinelinux.org-$id.rsa.pub"
|
||||
done
|
||||
|
||||
if [[ "$__SkipSigCheck" == "1" ]]; then
|
||||
__ApkSignatureArg="--allow-untrusted"
|
||||
else
|
||||
__ApkSignatureArg="--keys-dir $__ApkKeysDir"
|
||||
fi
|
||||
|
||||
# initialize DB
|
||||
"$__ApkToolsDir/apk.static" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \
|
||||
-U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" --initdb add
|
||||
|
||||
if [[ "$__AlpineLlvmLibsLookup" == 1 ]]; then
|
||||
__AlpinePackages+=" $("$__ApkToolsDir/apk.static" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \
|
||||
-U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \
|
||||
search 'llvm*-libs' | sort | tail -1 | sed 's/-[^-]*//2g')"
|
||||
fi
|
||||
|
||||
# install all packages in one go
|
||||
"$__ApkToolsDir/apk.static" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \
|
||||
-X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \
|
||||
-U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \
|
||||
add $__AlpinePackages
|
||||
|
||||
rm -r "$__ApkToolsDir"
|
||||
elif [[ "$__CodeName" == "freebsd" ]]; then
|
||||
mkdir -p $__RootfsDir/usr/local/etc
|
||||
JOBS="$(getconf _NPROCESSORS_ONLN)"
|
||||
wget -O - https://download.freebsd.org/ftp/releases/amd64/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
|
||||
echo "ABI = \"FreeBSD:${__FreeBSDABI}:amd64\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
|
||||
echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
|
||||
mkdir -p $__RootfsDir/tmp
|
||||
mkdir -p "$__RootfsDir"/usr/local/etc
|
||||
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
|
||||
wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
|
||||
echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
|
||||
echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
|
||||
mkdir -p "$__RootfsDir"/tmp
|
||||
# get and build package manager
|
||||
wget -O - https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz | tar -C $__RootfsDir/tmp -zxf -
|
||||
cd $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
|
||||
wget -O - "https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz" | tar -C "$__RootfsDir"/tmp -zxf -
|
||||
cd "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
|
||||
# needed for install to succeed
|
||||
mkdir -p $__RootfsDir/host/etc
|
||||
./autogen.sh && ./configure --prefix=$__RootfsDir/host && make -j "$JOBS" && make install
|
||||
rm -rf $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
|
||||
mkdir -p "$__RootfsDir"/host/etc
|
||||
./autogen.sh && ./configure --prefix="$__RootfsDir"/host && make -j "$JOBS" && make install
|
||||
rm -rf "$__RootfsDir/tmp/pkg-${__FreeBSDPkg}"
|
||||
# install packages we need.
|
||||
INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf update
|
||||
INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
|
||||
INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf update
|
||||
INSTALL_AS_USER=$(whoami) "$__RootfsDir"/host/sbin/pkg -r "$__RootfsDir" -C "$__RootfsDir"/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
|
||||
elif [[ "$__CodeName" == "illumos" ]]; then
|
||||
mkdir "$__RootfsDir/tmp"
|
||||
pushd "$__RootfsDir/tmp"
|
||||
JOBS="$(getconf _NPROCESSORS_ONLN)"
|
||||
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
|
||||
echo "Downloading sysroot."
|
||||
wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
|
||||
echo "Building binutils. Please wait.."
|
||||
wget -O - https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
|
||||
mkdir build-binutils && cd build-binutils
|
||||
../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir"
|
||||
../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir"
|
||||
make -j "$JOBS" && make install && cd ..
|
||||
echo "Building gcc. Please wait.."
|
||||
wget -O - https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
|
||||
|
@ -330,22 +534,27 @@ elif [[ "$__CodeName" == "illumos" ]]; then
|
|||
CFLAGS_FOR_TARGET="-fPIC"
|
||||
export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
|
||||
mkdir build-gcc && cd build-gcc
|
||||
../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
|
||||
../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
|
||||
--with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
|
||||
--disable-libquadmath-support --disable-shared --enable-tls
|
||||
make -j "$JOBS" && make install && cd ..
|
||||
BaseUrl=https://pkgsrc.joyent.com
|
||||
BaseUrl=https://pkgsrc.smartos.org
|
||||
if [[ "$__UseMirror" == 1 ]]; then
|
||||
BaseUrl=http://pkgsrc.smartos.skylime.net
|
||||
BaseUrl=https://pkgsrc.smartos.skylime.net
|
||||
fi
|
||||
BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/x86_64/All
|
||||
BaseUrl="$BaseUrl/packages/SmartOS/trunk/${__illumosArch}/All"
|
||||
echo "Downloading manifest"
|
||||
wget "$BaseUrl"
|
||||
echo "Downloading dependencies."
|
||||
read -ra array <<<"$__IllumosPackages"
|
||||
for package in "${array[@]}"; do
|
||||
echo "Installing $package..."
|
||||
echo "Installing '$package'"
|
||||
# find last occurrence of package in listing and extract its name
|
||||
package="$(sed -En '/.*href="('"$package"'-[0-9].*).tgz".*/h;$!d;g;s//\1/p' All)"
|
||||
echo "Resolved name '$package'"
|
||||
wget "$BaseUrl"/"$package".tgz
|
||||
ar -x "$package".tgz
|
||||
tar --skip-old-files -xzf "$package".tmp.tgz -C "$__RootfsDir" 2>/dev/null
|
||||
tar --skip-old-files -xzf "$package".tmp.tg* -C "$__RootfsDir" 2>/dev/null
|
||||
done
|
||||
echo "Cleaning up temporary files."
|
||||
popd
|
||||
|
@ -356,26 +565,82 @@ elif [[ "$__CodeName" == "illumos" ]]; then
|
|||
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
|
||||
wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
|
||||
wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
|
||||
elif [[ -n $__CodeName ]]; then
|
||||
qemu-debootstrap --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
|
||||
cp $__CrossDir/$__BuildArch/sources.list.$__CodeName $__RootfsDir/etc/apt/sources.list
|
||||
chroot $__RootfsDir apt-get update
|
||||
chroot $__RootfsDir apt-get -f -y install
|
||||
chroot $__RootfsDir apt-get -y install $__UbuntuPackages
|
||||
chroot $__RootfsDir symlinks -cr /usr
|
||||
chroot $__RootfsDir apt-get clean
|
||||
elif [[ "$__CodeName" == "haiku" ]]; then
|
||||
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
|
||||
|
||||
if [ $__SkipUnmount == 0 ]; then
|
||||
umount $__RootfsDir/* || true
|
||||
echo "Building Haiku sysroot for $__HaikuArch"
|
||||
mkdir -p "$__RootfsDir/tmp"
|
||||
pushd "$__RootfsDir/tmp"
|
||||
|
||||
mkdir "$__RootfsDir/tmp/download"
|
||||
|
||||
echo "Downloading Haiku package tool"
|
||||
git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 $__RootfsDir/tmp/script
|
||||
wget -O "$__RootfsDir/tmp/download/hosttools.zip" $($__RootfsDir/tmp/script/fetch.sh --hosttools)
|
||||
unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin"
|
||||
|
||||
DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
|
||||
HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current"
|
||||
|
||||
# Download Haiku packages
|
||||
echo "Downloading Haiku packages"
|
||||
read -ra array <<<"$__HaikuPackages"
|
||||
for package in "${array[@]}"; do
|
||||
echo "Downloading $package..."
|
||||
# API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
|
||||
# The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
|
||||
hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \
|
||||
--header='Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
|
||||
wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl"
|
||||
done
|
||||
for package in haiku haiku_devel; do
|
||||
echo "Downloading $package..."
|
||||
hpkgVersion="$(wget -qO- $HpkgBaseUrl | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
|
||||
wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
|
||||
done
|
||||
|
||||
# Set up the sysroot
|
||||
echo "Setting up sysroot and extracting required packages"
|
||||
mkdir -p "$__RootfsDir/boot/system"
|
||||
for file in "$__RootfsDir/tmp/download/"*.hpkg; do
|
||||
echo "Extracting $file..."
|
||||
LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package" extract -C "$__RootfsDir/boot/system" "$file"
|
||||
done
|
||||
|
||||
# Download buildtools
|
||||
echo "Downloading Haiku buildtools"
|
||||
wget -O "$__RootfsDir/tmp/download/buildtools.zip" $($__RootfsDir/tmp/script/fetch.sh --buildtools --arch=$__HaikuArch)
|
||||
unzip -o "$__RootfsDir/tmp/download/buildtools.zip" -d "$__RootfsDir"
|
||||
|
||||
# Cleaning up temporary files
|
||||
echo "Cleaning up temporary files"
|
||||
popd
|
||||
rm -rf "$__RootfsDir/tmp"
|
||||
elif [[ -n "$__CodeName" ]]; then
|
||||
|
||||
if [[ "$__SkipSigCheck" == "0" ]]; then
|
||||
__Keyring="$__Keyring --force-check-gpg"
|
||||
fi
|
||||
|
||||
debootstrap "--variant=minbase" $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
|
||||
cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"
|
||||
chroot "$__RootfsDir" apt-get update
|
||||
chroot "$__RootfsDir" apt-get -f -y install
|
||||
chroot "$__RootfsDir" apt-get -y install $__UbuntuPackages
|
||||
chroot "$__RootfsDir" symlinks -cr /usr
|
||||
chroot "$__RootfsDir" apt-get clean
|
||||
|
||||
if [[ "$__SkipUnmount" == "0" ]]; then
|
||||
umount "$__RootfsDir"/* || true
|
||||
fi
|
||||
|
||||
if [[ "$__BuildArch" == "armel" && "$__CodeName" == "jessie" ]]; then
|
||||
pushd $__RootfsDir
|
||||
patch -p1 < $__CrossDir/$__BuildArch/armel.jessie.patch
|
||||
pushd "$__RootfsDir"
|
||||
patch -p1 < "$__CrossDir/$__BuildArch/armel.jessie.patch"
|
||||
popd
|
||||
fi
|
||||
elif [[ "$__Tizen" == "tizen" ]]; then
|
||||
ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
|
||||
ROOTFS_DIR="$__RootfsDir" "$__CrossDir/tizen-build-rootfs.sh" "$__BuildArch"
|
||||
else
|
||||
echo "Unsupported target platform."
|
||||
usage;
|
||||
|
|
11
eng/common/cross/ppc64le/sources.list.bionic
Normal file
11
eng/common/cross/ppc64le/sources.list.bionic
Normal file
|
@ -0,0 +1,11 @@
|
|||
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||
|
||||
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
||||
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
1
eng/common/cross/riscv64/sources.list.sid
Normal file
1
eng/common/cross/riscv64/sources.list.sid
Normal file
|
@ -0,0 +1 @@
|
|||
deb http://deb.debian.org/debian-ports sid main
|
|
@ -1,8 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
ARCH=$1
|
||||
LINK_ARCH=$ARCH
|
||||
|
||||
case "$ARCH" in
|
||||
arm)
|
||||
TIZEN_ARCH="armv7hl"
|
||||
;;
|
||||
armel)
|
||||
TIZEN_ARCH="armv7l"
|
||||
LINK_ARCH="arm"
|
||||
;;
|
||||
arm64)
|
||||
TIZEN_ARCH="aarch64"
|
||||
;;
|
||||
x86)
|
||||
TIZEN_ARCH="i686"
|
||||
;;
|
||||
x64)
|
||||
TIZEN_ARCH="x86_64"
|
||||
LINK_ARCH="x86"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported architecture for tizen: $ARCH"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
__TIZEN_CROSSDIR="$__CrossDir/tizen"
|
||||
__TIZEN_CROSSDIR="$__CrossDir/${ARCH}/tizen"
|
||||
|
||||
if [[ -z "$ROOTFS_DIR" ]]; then
|
||||
echo "ROOTFS_DIR is not defined."
|
||||
|
@ -14,7 +40,7 @@ mkdir -p $TIZEN_TMP_DIR
|
|||
|
||||
# Download files
|
||||
echo ">>Start downloading files"
|
||||
VERBOSE=1 $__CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
|
||||
VERBOSE=1 $__CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR $TIZEN_ARCH
|
||||
echo "<<Finish downloading files"
|
||||
|
||||
echo ">>Start constructing Tizen rootfs"
|
||||
|
@ -30,6 +56,6 @@ rm -rf $TIZEN_TMP_DIR
|
|||
|
||||
# Configure Tizen rootfs
|
||||
echo ">>Start configuring Tizen rootfs"
|
||||
ln -sfn asm-arm64 ./usr/include/asm
|
||||
ln -sfn asm-${LINK_ARCH} ./usr/include/asm
|
||||
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
|
||||
echo "<<Finish configuring Tizen rootfs"
|
172
eng/common/cross/tizen-fetch.sh
Normal file
172
eng/common/cross/tizen-fetch.sh
Normal file
|
@ -0,0 +1,172 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
|
||||
VERBOSE=0
|
||||
fi
|
||||
|
||||
Log()
|
||||
{
|
||||
if [ $VERBOSE -ge $1 ]; then
|
||||
echo ${@:2}
|
||||
fi
|
||||
}
|
||||
|
||||
Inform()
|
||||
{
|
||||
Log 1 -e "\x1B[0;34m$@\x1B[m"
|
||||
}
|
||||
|
||||
Debug()
|
||||
{
|
||||
Log 2 -e "\x1B[0;32m$@\x1B[m"
|
||||
}
|
||||
|
||||
Error()
|
||||
{
|
||||
>&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
|
||||
}
|
||||
|
||||
Fetch()
|
||||
{
|
||||
URL=$1
|
||||
FILE=$2
|
||||
PROGRESS=$3
|
||||
if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
|
||||
CURL_OPT="--progress-bar"
|
||||
else
|
||||
CURL_OPT="--silent"
|
||||
fi
|
||||
curl $CURL_OPT $URL > $FILE
|
||||
}
|
||||
|
||||
hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
|
||||
hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
|
||||
hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
|
||||
|
||||
TMPDIR=$1
|
||||
if [ ! -d $TMPDIR ]; then
|
||||
TMPDIR=./tizen_tmp
|
||||
Debug "Create temporary directory : $TMPDIR"
|
||||
mkdir -p $TMPDIR
|
||||
fi
|
||||
|
||||
TIZEN_ARCH=$2
|
||||
|
||||
TIZEN_URL=http://download.tizen.org/snapshots/TIZEN/Tizen
|
||||
BUILD_XML=build.xml
|
||||
REPOMD_XML=repomd.xml
|
||||
PRIMARY_XML=primary.xml
|
||||
TARGET_URL="http://__not_initialized"
|
||||
|
||||
Xpath_get()
|
||||
{
|
||||
XPATH_RESULT=''
|
||||
XPATH=$1
|
||||
XML_FILE=$2
|
||||
RESULT=$(xmllint --xpath $XPATH $XML_FILE)
|
||||
if [[ -z ${RESULT// } ]]; then
|
||||
Error "Can not find target from $XML_FILE"
|
||||
Debug "Xpath = $XPATH"
|
||||
exit 1
|
||||
fi
|
||||
XPATH_RESULT=$RESULT
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs_init()
|
||||
{
|
||||
TARGET=$1
|
||||
PROFILE=$2
|
||||
Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
|
||||
|
||||
TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
|
||||
if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
|
||||
mkdir -p $TMP_PKG_DIR
|
||||
|
||||
PKG_URL=$TIZEN_URL/$PROFILE/latest
|
||||
|
||||
BUILD_XML_URL=$PKG_URL/$BUILD_XML
|
||||
TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
|
||||
TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
|
||||
TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
|
||||
TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
|
||||
|
||||
Fetch $BUILD_XML_URL $TMP_BUILD
|
||||
|
||||
Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
|
||||
|
||||
TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
|
||||
Xpath_get $TARGET_XPATH $TMP_BUILD
|
||||
TARGET_PATH=$XPATH_RESULT
|
||||
TARGET_URL=$PKG_URL/$TARGET_PATH
|
||||
|
||||
REPOMD_URL=$TARGET_URL/repodata/repomd.xml
|
||||
PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
|
||||
|
||||
Fetch $REPOMD_URL $TMP_REPOMD
|
||||
|
||||
Debug "fetch $REPOMD_URL to $TMP_REPOMD"
|
||||
|
||||
Xpath_get $PRIMARY_XPATH $TMP_REPOMD
|
||||
PRIMARY_XML_PATH=$XPATH_RESULT
|
||||
PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
|
||||
|
||||
Fetch $PRIMARY_URL $TMP_PRIMARYGZ
|
||||
|
||||
Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
|
||||
|
||||
gunzip $TMP_PRIMARYGZ
|
||||
|
||||
Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs()
|
||||
{
|
||||
ARCH=$1
|
||||
PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
|
||||
|
||||
PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
|
||||
|
||||
for pkg in ${@:2}
|
||||
do
|
||||
Inform "Fetching... $pkg"
|
||||
XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
PKG_PATH=$XPATH_RESULT
|
||||
|
||||
XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
CHECKSUM=$XPATH_RESULT
|
||||
|
||||
PKG_URL=$TARGET_URL/$PKG_PATH
|
||||
PKG_FILE=$(basename $PKG_PATH)
|
||||
PKG_PATH=$TMPDIR/$PKG_FILE
|
||||
|
||||
Debug "Download $PKG_URL to $PKG_PATH"
|
||||
Fetch $PKG_URL $PKG_PATH true
|
||||
|
||||
echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
Error "Fail to fetch $PKG_URL to $PKG_PATH"
|
||||
Debug "Checksum = $CHECKSUM"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
Inform "Initialize ${TIZEN_ARCH} base"
|
||||
fetch_tizen_pkgs_init standard Tizen-Base
|
||||
Inform "fetch common packages"
|
||||
fetch_tizen_pkgs ${TIZEN_ARCH} gcc gcc-devel-static glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel keyutils keyutils-devel libkeyutils
|
||||
Inform "fetch coreclr packages"
|
||||
fetch_tizen_pkgs ${TIZEN_ARCH} lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs ${TIZEN_ARCH} libcom_err libcom_err-devel zlib zlib-devel libopenssl11 libopenssl1.1-devel krb5 krb5-devel
|
||||
|
||||
Inform "Initialize standard unified"
|
||||
fetch_tizen_pkgs_init standard Tizen-Unified
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs ${TIZEN_ARCH} gssdp gssdp-devel tizen-release
|
||||
|
|
@ -6,25 +6,31 @@ unset(FREEBSD)
|
|||
unset(ILLUMOS)
|
||||
unset(ANDROID)
|
||||
unset(TIZEN)
|
||||
unset(HAIKU)
|
||||
|
||||
set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
|
||||
if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
|
||||
set(CMAKE_SYSTEM_NAME FreeBSD)
|
||||
set(FREEBSD 1)
|
||||
elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
|
||||
set(CMAKE_SYSTEM_NAME SunOS)
|
||||
set(ILLUMOS 1)
|
||||
elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
|
||||
set(CMAKE_SYSTEM_NAME Haiku)
|
||||
set(HAIKU 1)
|
||||
else()
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(LINUX 1)
|
||||
endif()
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||
set(TOOLCHAIN "arm-linux-gnueabi")
|
||||
if("$ENV{__DistroRid}" MATCHES "tizen.*")
|
||||
set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm")
|
||||
if(EXISTS ${CROSS_ROOTFS}/etc/tizen-release)
|
||||
set(TIZEN 1)
|
||||
elseif(EXISTS ${CROSS_ROOTFS}/android_platform)
|
||||
set(ANDROID 1)
|
||||
endif()
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "arm")
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf)
|
||||
set(TOOLCHAIN "armv7-alpine-linux-musleabihf")
|
||||
|
@ -33,30 +39,83 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm")
|
|||
else()
|
||||
set(TOOLCHAIN "arm-linux-gnueabihf")
|
||||
endif()
|
||||
if(TIZEN)
|
||||
set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
|
||||
set(TOOLCHAIN "aarch64-alpine-linux-musl")
|
||||
else()
|
||||
elseif(LINUX)
|
||||
set(TOOLCHAIN "aarch64-linux-gnu")
|
||||
if(TIZEN)
|
||||
set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
|
||||
endif()
|
||||
elseif(FREEBSD)
|
||||
set(triple "aarch64-unknown-freebsd12")
|
||||
endif()
|
||||
if("$ENV{__DistroRid}" MATCHES "tizen.*")
|
||||
set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||
set(TOOLCHAIN "arm-linux-gnueabi")
|
||||
if(TIZEN)
|
||||
set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "armv6")
|
||||
set(CMAKE_SYSTEM_PROCESSOR armv6l)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
|
||||
set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
|
||||
else()
|
||||
set(TOOLCHAIN "arm-linux-gnueabihf")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
|
||||
set(CMAKE_SYSTEM_PROCESSOR ppc64le)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl)
|
||||
set(TOOLCHAIN "powerpc64le-alpine-linux-musl")
|
||||
else()
|
||||
set(TOOLCHAIN "powerpc64le-linux-gnu")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
|
||||
set(CMAKE_SYSTEM_PROCESSOR riscv64)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl)
|
||||
set(TOOLCHAIN "riscv64-alpine-linux-musl")
|
||||
else()
|
||||
set(TOOLCHAIN "riscv64-linux-gnu")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
|
||||
set(CMAKE_SYSTEM_PROCESSOR s390x)
|
||||
set(TOOLCHAIN "s390x-linux-gnu")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/s390x-alpine-linux-musl)
|
||||
set(TOOLCHAIN "s390x-alpine-linux-musl")
|
||||
else()
|
||||
set(TOOLCHAIN "s390x-linux-gnu")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x64")
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/x86_64-alpine-linux-musl)
|
||||
set(TOOLCHAIN "x86_64-alpine-linux-musl")
|
||||
elseif(LINUX)
|
||||
set(TOOLCHAIN "x86_64-linux-gnu")
|
||||
if(TIZEN)
|
||||
set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0")
|
||||
endif()
|
||||
elseif(FREEBSD)
|
||||
set(triple "x86_64-unknown-freebsd12")
|
||||
elseif(ILLUMOS)
|
||||
set(TOOLCHAIN "x86_64-illumos")
|
||||
elseif(HAIKU)
|
||||
set(TOOLCHAIN "x86_64-unknown-haiku")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
set(CMAKE_SYSTEM_PROCESSOR i686)
|
||||
set(TOOLCHAIN "i686-linux-gnu")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
set(triple "x86_64-unknown-freebsd11")
|
||||
elseif (ILLUMOS)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
set(TOOLCHAIN "x86_64-illumos")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
|
||||
set(TOOLCHAIN "i586-alpine-linux-musl")
|
||||
else()
|
||||
set(TOOLCHAIN "i686-linux-gnu")
|
||||
endif()
|
||||
if(TIZEN)
|
||||
set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64, s390x and x86 are supported!")
|
||||
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!")
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{TOOLCHAIN})
|
||||
|
@ -64,7 +123,11 @@ if(DEFINED ENV{TOOLCHAIN})
|
|||
endif()
|
||||
|
||||
# Specify include paths
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
if(TIZEN)
|
||||
if(TARGET_ARCH_NAME STREQUAL "arm")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7hl-tizen-linux-gnueabihf)
|
||||
endif()
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
|
||||
|
@ -73,9 +136,17 @@ if(DEFINED TIZEN_TOOLCHAIN)
|
|||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
|
||||
endif()
|
||||
if(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/i586-tizen-linux-gnu)
|
||||
endif()
|
||||
if(TARGET_ARCH_NAME STREQUAL "x64")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/x86_64-tizen-linux-gnu)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("$ENV{__DistroRid}" MATCHES "android.*")
|
||||
if(ANDROID)
|
||||
if(TARGET_ARCH_NAME STREQUAL "arm")
|
||||
set(ANDROID_ABI armeabi-v7a)
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
|
@ -83,7 +154,9 @@ if("$ENV{__DistroRid}" MATCHES "android.*")
|
|||
endif()
|
||||
|
||||
# extract platform number required by the NDK's toolchain
|
||||
string(REGEX REPLACE ".*\\.([0-9]+)-.*" "\\1" ANDROID_PLATFORM "$ENV{__DistroRid}")
|
||||
file(READ "${CROSS_ROOTFS}/android_platform" RID_FILE_CONTENTS)
|
||||
string(REPLACE "RID=" "" ANDROID_RID "${RID_FILE_CONTENTS}")
|
||||
string(REGEX REPLACE ".*\\.([0-9]+)-.*" "\\1" ANDROID_PLATFORM "${ANDROID_RID}")
|
||||
|
||||
set(ANDROID_TOOLCHAIN clang)
|
||||
set(FEATURE_EVENT_TRACE 0) # disable event trace as there is no lttng-ust package in termux repository
|
||||
|
@ -92,12 +165,15 @@ if("$ENV{__DistroRid}" MATCHES "android.*")
|
|||
|
||||
# include official NDK toolchain script
|
||||
include(${CROSS_ROOTFS}/../build/cmake/android.toolchain.cmake)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
elseif(FREEBSD)
|
||||
# we cross-compile by instructing clang
|
||||
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_ASM_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
elseif(ILLUMOS)
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
|
||||
|
@ -129,6 +205,39 @@ elseif(ILLUMOS)
|
|||
|
||||
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
|
||||
elseif(HAIKU)
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin")
|
||||
|
||||
set(TOOLSET_PREFIX ${TOOLCHAIN}-)
|
||||
function(locate_toolchain_exec exec var)
|
||||
string(TOUPPER ${exec} EXEC_UPPERCASE)
|
||||
if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
|
||||
set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
find_program(EXEC_LOCATION_${exec}
|
||||
NAMES
|
||||
"${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
|
||||
"${TOOLSET_PREFIX}${exec}")
|
||||
|
||||
if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
|
||||
message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
|
||||
endif()
|
||||
set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
|
||||
|
||||
locate_toolchain_exec(gcc CMAKE_C_COMPILER)
|
||||
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
|
||||
|
||||
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
|
||||
|
||||
# let CMake set up the correct search paths
|
||||
include(Platform/Haiku)
|
||||
else()
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
|
||||
|
@ -149,20 +258,20 @@ function(add_toolchain_linker_flag Flag)
|
|||
set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT} ${Flag}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if(LINUX)
|
||||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
|
||||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}")
|
||||
endif()
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
|
||||
if(TIZEN)
|
||||
add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||
elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64)$")
|
||||
if(TIZEN)
|
||||
add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib64")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib64")
|
||||
|
@ -173,15 +282,28 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
|||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
|
||||
add_toolchain_linker_flag("--target=${TOOLCHAIN}")
|
||||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
|
||||
endif()
|
||||
add_toolchain_linker_flag(-m32)
|
||||
if(TIZEN)
|
||||
add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(ILLUMOS)
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib/amd64")
|
||||
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/amd64/lib")
|
||||
elseif(HAIKU)
|
||||
add_toolchain_linker_flag("-lnetwork")
|
||||
add_toolchain_linker_flag("-lroot")
|
||||
endif()
|
||||
|
||||
# Specify compile options
|
||||
|
||||
if((TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64|s390x)$" AND NOT "$ENV{__DistroRid}" MATCHES "android.*") OR ILLUMOS)
|
||||
if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
|
||||
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
|
||||
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
|
||||
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
|
||||
|
@ -200,16 +322,22 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
|
|||
|
||||
add_definitions (-DCLR_ARM_FPU_CAPABILITY=${CLR_ARM_FPU_CAPABILITY})
|
||||
|
||||
# persist variables across multiple try_compile passes
|
||||
list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CLR_ARM_FPU_TYPE CLR_ARM_FPU_CAPABILITY)
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
add_compile_options(-mfloat-abi=softfp)
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
|
||||
add_compile_options(--target=${TOOLCHAIN})
|
||||
endif()
|
||||
add_compile_options(-m32)
|
||||
add_compile_options(-Wno-error=unused-command-line-argument)
|
||||
endif()
|
||||
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
if(TARGET_ARCH_NAME MATCHES "^(armel|arm64)$")
|
||||
if(TIZEN)
|
||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64|x86)$")
|
||||
add_compile_options(-Wno-deprecated-declarations) # compile-time option
|
||||
add_compile_options(-D__extern_always_inline=inline) # compile-time option
|
||||
endif()
|
||||
|
|
|
@ -53,7 +53,7 @@ fi
|
|||
function InstallDarcCli {
|
||||
local darc_cli_package_name="microsoft.dotnet.darc"
|
||||
|
||||
InitializeDotNetCli
|
||||
InitializeDotNetCli true
|
||||
local dotnet_root=$_InitializeDotNetCli
|
||||
|
||||
if [ -z "$toolpath" ]; then
|
||||
|
|
7
eng/common/dotnet-install.sh
vendored
7
eng/common/dotnet-install.sh
vendored
|
@ -54,6 +54,13 @@ cpuname=$(uname -m)
|
|||
case $cpuname in
|
||||
arm64|aarch64)
|
||||
buildarch=arm64
|
||||
if [ "$(getconf LONG_BIT)" -lt 64 ]; then
|
||||
# This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS)
|
||||
buildarch=arm
|
||||
fi
|
||||
;;
|
||||
loongarch64)
|
||||
buildarch=loongarch64
|
||||
;;
|
||||
amd64|x86_64)
|
||||
buildarch=x64
|
||||
|
|
|
@ -10,9 +10,7 @@ Param(
|
|||
|
||||
Set-StrictMode -Version 2.0
|
||||
$ErrorActionPreference = "Stop"
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
|
||||
. $PSScriptRoot\pipeline-logging-functions.ps1
|
||||
|
||||
$exclusionsFilePath = "$SourcesDirectory\eng\Localize\LocExclusions.json"
|
||||
$exclusions = @{ Exclusions = @() }
|
||||
|
@ -28,13 +26,34 @@ $jsonFiles = @()
|
|||
$jsonTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\.+\.en\.json" } # .NET templating pattern
|
||||
$jsonTemplateFiles | ForEach-Object {
|
||||
$null = $_.Name -Match "(.+)\.[\w-]+\.json" # matches '[filename].[langcode].json
|
||||
|
||||
|
||||
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).json"
|
||||
$jsonFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
|
||||
}
|
||||
|
||||
$jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
|
||||
|
||||
$wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them
|
||||
if (-not $wxlFiles) {
|
||||
$wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files
|
||||
if ($wxlEnFiles) {
|
||||
$wxlFiles = @()
|
||||
$wxlEnFiles | ForEach-Object {
|
||||
$destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
|
||||
$wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$macosHtmlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\.lproj\\.+\.html$" } # add installer HTML files
|
||||
$macosHtmlFiles = @()
|
||||
if ($macosHtmlEnFiles) {
|
||||
$macosHtmlEnFiles | ForEach-Object {
|
||||
$destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
|
||||
$macosHtmlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
|
||||
}
|
||||
}
|
||||
|
||||
$xlfFiles = @()
|
||||
|
||||
$allXlfFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory\*\*.xlf"
|
||||
|
@ -46,7 +65,7 @@ if ($allXlfFiles) {
|
|||
}
|
||||
$langXlfFiles | ForEach-Object {
|
||||
$null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf
|
||||
|
||||
|
||||
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
|
||||
$xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
|
||||
}
|
||||
|
@ -59,10 +78,10 @@ $locJson = @{
|
|||
LanguageSet = $LanguageSet
|
||||
LocItems = @(
|
||||
$locFiles | ForEach-Object {
|
||||
$outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
|
||||
$outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
|
||||
$continue = $true
|
||||
foreach ($exclusion in $exclusions.Exclusions) {
|
||||
if ($outputPath.Contains($exclusion))
|
||||
if ($_.FullName.Contains($exclusion))
|
||||
{
|
||||
$continue = $false
|
||||
}
|
||||
|
@ -79,8 +98,7 @@ $locJson = @{
|
|||
CopyOption = "LangIDOnPath"
|
||||
OutputPath = "$($_.Directory.Parent.FullName | Resolve-Path -Relative)\"
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return @{
|
||||
SourceFile = $sourceFile
|
||||
CopyOption = "LangIDOnName"
|
||||
|
@ -90,6 +108,60 @@ $locJson = @{
|
|||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
LanguageSet = $LanguageSet
|
||||
CloneLanguageSet = "WiX_CloneLanguages"
|
||||
LssFiles = @( "wxl_loc.lss" )
|
||||
LocItems = @(
|
||||
$wxlFiles | ForEach-Object {
|
||||
$outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
|
||||
$continue = $true
|
||||
foreach ($exclusion in $exclusions.Exclusions) {
|
||||
if ($_.FullName.Contains($exclusion)) {
|
||||
$continue = $false
|
||||
}
|
||||
}
|
||||
$sourceFile = ($_.FullName | Resolve-Path -Relative)
|
||||
if ($continue)
|
||||
{
|
||||
return @{
|
||||
SourceFile = $sourceFile
|
||||
CopyOption = "LangIDOnPath"
|
||||
OutputPath = $outputPath
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
LanguageSet = $LanguageSet
|
||||
CloneLanguageSet = "VS_macOS_CloneLanguages"
|
||||
LssFiles = @( ".\eng\common\loc\P22DotNetHtmlLocalization.lss" )
|
||||
LocItems = @(
|
||||
$macosHtmlFiles | ForEach-Object {
|
||||
$outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
|
||||
$continue = $true
|
||||
foreach ($exclusion in $exclusions.Exclusions) {
|
||||
if ($_.FullName.Contains($exclusion)) {
|
||||
$continue = $false
|
||||
}
|
||||
}
|
||||
$sourceFile = ($_.FullName | Resolve-Path -Relative)
|
||||
$lciFile = $sourceFile + ".lci"
|
||||
if ($continue) {
|
||||
$result = @{
|
||||
SourceFile = $sourceFile
|
||||
CopyOption = "LangIDOnPath"
|
||||
OutputPath = $outputPath
|
||||
}
|
||||
if (Test-Path $lciFile -PathType Leaf) {
|
||||
$result["LciFile"] = $lciFile
|
||||
}
|
||||
return $result
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -108,10 +180,10 @@ else {
|
|||
|
||||
if ((Get-FileHash "$SourcesDirectory\eng\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\eng\Localize\LocProject.json").Hash) {
|
||||
Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
|
||||
|
||||
|
||||
exit 1
|
||||
}
|
||||
else {
|
||||
Write-Host "Generated LocProject.json and current LocProject.json are identical."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,7 +83,8 @@ try {
|
|||
Select-Object -Expand 'native-tools' -ErrorAction SilentlyContinue
|
||||
if ($NativeTools) {
|
||||
if ($PathPromotion -eq $True) {
|
||||
if ($env:SYSTEM_TEAMPROJECT) { # check to see if we're in an Azure pipelines build
|
||||
$ArcadeToolsDirectory = "$env:SYSTEMDRIVE\arcade-tools"
|
||||
if (Test-Path $ArcadeToolsDirectory) { # if this directory exists, we should use native tools on machine
|
||||
$NativeTools.PSObject.Properties | ForEach-Object {
|
||||
$ToolName = $_.Name
|
||||
$ToolVersion = $_.Value
|
||||
|
@ -93,16 +94,12 @@ try {
|
|||
if ($ToolVersion -eq "latest") {
|
||||
$ToolVersion = ""
|
||||
}
|
||||
$ArcadeToolsDirectory = "C:\arcade-tools"
|
||||
if (-not (Test-Path $ArcadeToolsDirectory)) {
|
||||
Write-Error "Arcade tools directory '$ArcadeToolsDirectory' was not found; artifacts were not properly installed."
|
||||
exit 1
|
||||
}
|
||||
$ToolDirectory = (Get-ChildItem -Path "$ArcadeToolsDirectory" -Filter "$ToolName-$ToolVersion*" | Sort-Object -Descending)[0]
|
||||
if ([string]::IsNullOrWhiteSpace($ToolDirectory)) {
|
||||
$ToolDirectories = (Get-ChildItem -Path "$ArcadeToolsDirectory" -Filter "$ToolName-$ToolVersion*" | Sort-Object -Descending)
|
||||
if ($ToolDirectories -eq $null) {
|
||||
Write-Error "Unable to find directory for $ToolName $ToolVersion; please make sure the tool is installed on this image."
|
||||
exit 1
|
||||
}
|
||||
$ToolDirectory = $ToolDirectories[0]
|
||||
$BinPathFile = "$($ToolDirectory.FullName)\binpath.txt"
|
||||
if (-not (Test-Path -Path "$BinPathFile")) {
|
||||
Write-Error "Unable to find binpath.txt in '$($ToolDirectory.FullName)' ($ToolName $ToolVersion); artifact is either installed incorrectly or is not a bootstrappable tool."
|
||||
|
@ -124,6 +121,7 @@ try {
|
|||
|
||||
if ((Get-Command "$ToolName" -ErrorAction SilentlyContinue) -eq $null) {
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message "$ToolName not found on path. Please install $ToolName $ToolVersion before proceeding."
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message "If this is running on a build machine, the arcade-tools directory was not found, which means there's an error with the image."
|
||||
}
|
||||
}
|
||||
exit 0
|
||||
|
@ -202,4 +200,4 @@ catch {
|
|||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
|
|
29
eng/common/loc/P22DotNetHtmlLocalization.lss
Normal file
29
eng/common/loc/P22DotNetHtmlLocalization.lss
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0"?>
|
||||
<LS_SETTINGS_FILE>
|
||||
<LS_SETTINGS_DESCRIPTION>
|
||||
<![CDATA[]]>
|
||||
</LS_SETTINGS_DESCRIPTION>
|
||||
<optionSet id="LSOptions">
|
||||
<optionSet id="Defaults" displayName="Options Defaults">
|
||||
<optionSet id="Espresso" displayName="Espresso"/>
|
||||
<optionSet id="Parsers" displayName="Parsers"/>
|
||||
</optionSet>
|
||||
<optionSet id="User" displayName="User Overrides">
|
||||
<optionSet id="Espresso" displayName="Espresso"/>
|
||||
<optionSet id="Parsers" displayName="Parsers"/>
|
||||
</optionSet>
|
||||
<optionSet id="Project" displayName="Project Overrides">
|
||||
<optionSet id="Espresso" displayName="Espresso"/>
|
||||
<optionSet id="Parsers" displayName="Parsers">
|
||||
<optionSet id="Parser 22" displayName="POMHTML Parser options" helpText="POMHTML Parser options for Localization Studio.">
|
||||
<option id="SetCharsetInfo" displayName="Set or add Charset information when Generating" helpText="Add Charset information to the Generated file. This is in the format <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">. This is based on the Project Target Langauge. If the dir attribute value in the HTML tag i.e. <HTML dir="ltr"> is not localizable or is missing, its value will be set automatically on Generate if the reading order of the target language is different from the source language.">
|
||||
<boolean defaultValue="1" currentValue="0"/>
|
||||
</option>
|
||||
<option id="IncTermNoResId" displayName="Include Terms which have no Resource Identifier" helpText="Include Terms which have no Resource Identifier. Terms without Resource Identifiers cannot be Updated or Uploaded if they change.">
|
||||
<boolean defaultValue="0" currentValue="1"/>
|
||||
</option>
|
||||
</optionSet>
|
||||
</optionSet>
|
||||
</optionSet>
|
||||
</optionSet>
|
||||
</LS_SETTINGS_FILE>
|
|
@ -6,6 +6,7 @@ Param(
|
|||
[switch] $ci,
|
||||
[switch] $prepareMachine,
|
||||
[switch] $excludePrereleaseVS,
|
||||
[string] $msbuildEngine = $null,
|
||||
[Parameter(ValueFromRemainingArguments=$true)][String[]]$extraArgs
|
||||
)
|
||||
|
||||
|
|
|
@ -276,7 +276,8 @@ function Get-MachineArchitecture {
|
|||
}
|
||||
if (($ProcessorArchitecture -Eq "AMD64") -Or
|
||||
($ProcessorArchitecture -Eq "IA64") -Or
|
||||
($ProcessorArchitecture -Eq "ARM64")) {
|
||||
($ProcessorArchitecture -Eq "ARM64") -Or
|
||||
($ProcessorArchitecture -Eq "LOONGARCH64")) {
|
||||
return "x64"
|
||||
}
|
||||
return "x86"
|
||||
|
|
|
@ -1,121 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# This file locates the native compiler with the given name and version and sets the environment variables to locate it.
|
||||
#
|
||||
|
||||
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 )"
|
||||
|
||||
if [ $# -lt 0 ]
|
||||
then
|
||||
echo "Usage..."
|
||||
echo "find-native-compiler.sh <compiler> <compiler major version> <compiler minor version>"
|
||||
echo "Specify the name of compiler (clang or gcc)."
|
||||
echo "Specify the major version of compiler."
|
||||
echo "Specify the minor version of compiler."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. $scriptroot/../pipeline-logging-functions.sh
|
||||
|
||||
compiler="$1"
|
||||
cxxCompiler="$compiler++"
|
||||
majorVersion="$2"
|
||||
minorVersion="$3"
|
||||
|
||||
if [ "$compiler" = "gcc" ]; then cxxCompiler="g++"; fi
|
||||
|
||||
check_version_exists() {
|
||||
desired_version=-1
|
||||
|
||||
# Set up the environment to be used for building with the desired compiler.
|
||||
if command -v "$compiler-$1.$2" > /dev/null; then
|
||||
desired_version="-$1.$2"
|
||||
elif command -v "$compiler$1$2" > /dev/null; then
|
||||
desired_version="$1$2"
|
||||
elif command -v "$compiler-$1$2" > /dev/null; then
|
||||
desired_version="-$1$2"
|
||||
fi
|
||||
|
||||
echo "$desired_version"
|
||||
}
|
||||
|
||||
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=( 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
|
||||
elif [ "$compiler" = "gcc" ]; then versions=( 9 8 7 6 5 4.9 ); fi
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
parts=(${version//./ })
|
||||
desired_version="$(check_version_exists "${parts[0]}" "${parts[1]}")"
|
||||
if [ "$desired_version" != "-1" ]; then majorVersion="${parts[0]}"; break; fi
|
||||
done
|
||||
|
||||
if [ -z "$majorVersion" ]; then
|
||||
if command -v "$compiler" > /dev/null; then
|
||||
if [ "$(uname)" != "Darwin" ]; then
|
||||
Write-PipelineTelemetryError -category "Build" -type "warning" "Specific version of $compiler not found, falling back to use the one in PATH."
|
||||
fi
|
||||
export CC="$(command -v "$compiler")"
|
||||
export CXX="$(command -v "$cxxCompiler")"
|
||||
else
|
||||
Write-PipelineTelemetryError -category "Build" "No usable version of $compiler found."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ "$compiler" = "clang" ] && [ "$majorVersion" -lt 5 ]; then
|
||||
if [ "$build_arch" = "arm" ] || [ "$build_arch" = "armel" ]; then
|
||||
if command -v "$compiler" > /dev/null; then
|
||||
Write-PipelineTelemetryError -category "Build" -type "warning" "Found clang version $majorVersion which is not supported on arm/armel architectures, falling back to use clang from PATH."
|
||||
export CC="$(command -v "$compiler")"
|
||||
export CXX="$(command -v "$cxxCompiler")"
|
||||
else
|
||||
Write-PipelineTelemetryError -category "Build" "Found clang version $majorVersion which is not supported on arm/armel architectures, and there is no clang in PATH."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
desired_version="$(check_version_exists "$majorVersion" "$minorVersion")"
|
||||
if [ "$desired_version" = "-1" ]; then
|
||||
Write-PipelineTelemetryError -category "Build" "Could not find specific version of $compiler: $majorVersion $minorVersion."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$CC" ]; then
|
||||
export CC="$(command -v "$compiler$desired_version")"
|
||||
export CXX="$(command -v "$cxxCompiler$desired_version")"
|
||||
if [ -z "$CXX" ]; then export CXX="$(command -v "$cxxCompiler")"; fi
|
||||
fi
|
||||
else
|
||||
if [ ! -f "$CLR_CC" ]; then
|
||||
Write-PipelineTelemetryError -category "Build" "CLR_CC is set but path '$CLR_CC' does not exist"
|
||||
exit 1
|
||||
fi
|
||||
export CC="$CLR_CC"
|
||||
export CXX="$CLR_CXX"
|
||||
fi
|
||||
|
||||
if [ -z "$CC" ]; then
|
||||
Write-PipelineTelemetryError -category "Build" "Unable to find $compiler."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CCC_CC="$CC"
|
||||
export CCC_CXX="$CXX"
|
||||
export SCAN_BUILD_COMMAND="$(command -v "scan-build$desired_version")"
|
137
eng/common/native/init-compiler.sh
Normal file
137
eng/common/native/init-compiler.sh
Normal file
|
@ -0,0 +1,137 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This file detects the C/C++ compiler and exports it to the CC/CXX environment variables
|
||||
#
|
||||
# NOTE: some scripts source this file and rely on stdout being empty, make sure to not output anything here!
|
||||
|
||||
if [ -z "$build_arch" ] || [ -z "$compiler" ]; then
|
||||
echo "Usage..."
|
||||
echo "build_arch=<ARCH> compiler=<NAME> init-compiler.sh"
|
||||
echo "Specify the target architecture."
|
||||
echo "Specify the name of compiler (clang or gcc)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$compiler" in
|
||||
clang*|-clang*|--clang*)
|
||||
# clangx.y or clang-x.y
|
||||
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
|
||||
majorVersion="${version%%.*}"
|
||||
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"
|
||||
|
||||
if [ -z "$minorVersion" ] && [ -n "$majorVersion" ] && [ "$majorVersion" -le 6 ]; then
|
||||
minorVersion=0;
|
||||
fi
|
||||
compiler=clang
|
||||
;;
|
||||
|
||||
gcc*|-gcc*|--gcc*)
|
||||
# gccx.y or gcc-x.y
|
||||
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
|
||||
majorVersion="${version%%.*}"
|
||||
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"
|
||||
compiler=gcc
|
||||
;;
|
||||
esac
|
||||
|
||||
cxxCompiler="$compiler++"
|
||||
|
||||
# clear the existing CC and CXX from environment
|
||||
CC=
|
||||
CXX=
|
||||
LDFLAGS=
|
||||
|
||||
if [ "$compiler" = "gcc" ]; then cxxCompiler="g++"; fi
|
||||
|
||||
check_version_exists() {
|
||||
desired_version=-1
|
||||
|
||||
# Set up the environment to be used for building with the desired compiler.
|
||||
if command -v "$compiler-$1.$2" > /dev/null; then
|
||||
desired_version="-$1.$2"
|
||||
elif command -v "$compiler$1$2" > /dev/null; then
|
||||
desired_version="$1$2"
|
||||
elif command -v "$compiler-$1$2" > /dev/null; then
|
||||
desired_version="-$1$2"
|
||||
fi
|
||||
|
||||
echo "$desired_version"
|
||||
}
|
||||
|
||||
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="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
|
||||
_major="${version%%.*}"
|
||||
[ -z "${version##*.*}" ] && _minor="${version#*.}"
|
||||
desired_version="$(check_version_exists "$_major" "$_minor")"
|
||||
if [ "$desired_version" != "-1" ]; then majorVersion="$_major"; break; fi
|
||||
done
|
||||
|
||||
if [ -z "$majorVersion" ]; then
|
||||
if command -v "$compiler" > /dev/null; then
|
||||
if [ "$(uname)" != "Darwin" ]; then
|
||||
echo "Warning: Specific version of $compiler not found, falling back to use the one in PATH."
|
||||
fi
|
||||
CC="$(command -v "$compiler")"
|
||||
CXX="$(command -v "$cxxCompiler")"
|
||||
else
|
||||
echo "No usable version of $compiler found."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ "$compiler" = "clang" ] && [ "$majorVersion" -lt 5 ]; then
|
||||
if [ "$build_arch" = "arm" ] || [ "$build_arch" = "armel" ]; then
|
||||
if command -v "$compiler" > /dev/null; then
|
||||
echo "Warning: Found clang version $majorVersion which is not supported on arm/armel architectures, falling back to use clang from PATH."
|
||||
CC="$(command -v "$compiler")"
|
||||
CXX="$(command -v "$cxxCompiler")"
|
||||
else
|
||||
echo "Found clang version $majorVersion which is not supported on arm/armel architectures, and there is no clang in PATH."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
desired_version="$(check_version_exists "$majorVersion" "$minorVersion")"
|
||||
if [ "$desired_version" = "-1" ]; then
|
||||
echo "Could not find specific version of $compiler: $majorVersion $minorVersion."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$CC" ]; then
|
||||
CC="$(command -v "$compiler$desired_version")"
|
||||
CXX="$(command -v "$cxxCompiler$desired_version")"
|
||||
if [ -z "$CXX" ]; then CXX="$(command -v "$cxxCompiler")"; fi
|
||||
fi
|
||||
else
|
||||
if [ ! -f "$CLR_CC" ]; then
|
||||
echo "CLR_CC is set but path '$CLR_CC' does not exist"
|
||||
exit 1
|
||||
fi
|
||||
CC="$CLR_CC"
|
||||
CXX="$CLR_CXX"
|
||||
fi
|
||||
|
||||
if [ -z "$CC" ]; then
|
||||
echo "Unable to find $compiler."
|
||||
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
|
||||
if "$CC" -fuse-ld=lld -Wl,--version >/dev/null 2>&1; then
|
||||
LDFLAGS="-fuse-ld=lld"
|
||||
fi
|
||||
fi
|
||||
|
||||
SCAN_BUILD_COMMAND="$(command -v "scan-build$desired_version")"
|
||||
|
||||
export CC CXX LDFLAGS SCAN_BUILD_COMMAND
|
130
eng/common/native/init-distro-rid.sh
Normal file
130
eng/common/native/init-distro-rid.sh
Normal file
|
@ -0,0 +1,130 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# getNonPortableDistroRid
|
||||
#
|
||||
# Input:
|
||||
# targetOs: (str)
|
||||
# targetArch: (str)
|
||||
# rootfsDir: (str)
|
||||
#
|
||||
# Return:
|
||||
# non-portable rid
|
||||
getNonPortableDistroRid()
|
||||
{
|
||||
local targetOs="$1"
|
||||
local targetArch="$2"
|
||||
local rootfsDir="$3"
|
||||
local nonPortableRid=""
|
||||
|
||||
if [ "$targetOs" = "linux" ]; then
|
||||
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%.*}"
|
||||
fi
|
||||
|
||||
if [[ "${VERSION_ID:-}" =~ ^([[:digit:]]|\.)+$ ]]; then
|
||||
nonPortableRid="${ID}.${VERSION_ID}-${targetArch}"
|
||||
else
|
||||
# Rolling release distros either do not set VERSION_ID, set it as blank or
|
||||
# set it to non-version looking string (such as TEMPLATE_VERSION_ID on ArchLinux);
|
||||
# so omit it here to be consistent with everything else.
|
||||
nonPortableRid="${ID}-${targetArch}"
|
||||
fi
|
||||
|
||||
elif [ -e "${rootfsDir}/android_platform" ]; then
|
||||
source "$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%%.*}"; })
|
||||
nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}"
|
||||
elif command -v getprop && getprop ro.product.system.model 2>&1 | 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"
|
||||
;;
|
||||
joyent_*)
|
||||
__smartos_major_version=$(echo "${__uname_version:7:4}")
|
||||
nonPortableRid=smartos."$__smartos_major_version"-"$targetArch"
|
||||
;;
|
||||
illumos_*)
|
||||
nonPortableRid=openindiana-"$targetArch"
|
||||
;;
|
||||
esac
|
||||
elif [ "$targetOs" = "solaris" ]; then
|
||||
__uname_version=$(uname -v)
|
||||
__solaris_major_version=$(echo "${__uname_version%.*}")
|
||||
nonPortableRid=solaris."$__solaris_major_version"-"$targetArch"
|
||||
elif [ "$targetOs" = "haiku" ]; then
|
||||
__uname_release=$(uname -r)
|
||||
nonPortableRid=haiku.r"$__uname_release"-"$targetArch"
|
||||
fi
|
||||
|
||||
echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')"
|
||||
}
|
||||
|
||||
# initDistroRidGlobal
|
||||
#
|
||||
# Input:
|
||||
# os: (str)
|
||||
# arch: (str)
|
||||
# rootfsDir?: (nullable:string)
|
||||
#
|
||||
# Return:
|
||||
# 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.
|
||||
#
|
||||
initDistroRidGlobal()
|
||||
{
|
||||
local targetOs="$1"
|
||||
local targetArch="$2"
|
||||
local 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."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
__DistroRid=$(getNonPortableDistroRid "${targetOs}" "${targetArch}" "${rootfsDir}")
|
||||
|
||||
if [ -z "${__PortableTargetOS:-}" ]; then
|
||||
__PortableTargetOS="$targetOs"
|
||||
|
||||
STRINGS="$(command -v strings || true)"
|
||||
if [ -z "$STRINGS" ]; then
|
||||
STRINGS="$(command -v llvm-strings || true)"
|
||||
fi
|
||||
|
||||
# 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"
|
||||
fi
|
||||
fi
|
||||
|
||||
export __DistroRid __PortableTargetOS
|
||||
}
|
80
eng/common/native/init-os-and-arch.sh
Normal file
80
eng/common/native/init-os-and-arch.sh
Normal file
|
@ -0,0 +1,80 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Use uname to determine what the OS is.
|
||||
OSName=$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
if command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then
|
||||
OSName="android"
|
||||
fi
|
||||
|
||||
case "$OSName" in
|
||||
freebsd|linux|netbsd|openbsd|sunos|android|haiku)
|
||||
os="$OSName" ;;
|
||||
darwin)
|
||||
os=osx ;;
|
||||
*)
|
||||
echo "Unsupported OS $OSName detected!"
|
||||
exit 1 ;;
|
||||
esac
|
||||
|
||||
# On Solaris, `uname -m` is discouraged, see https://docs.oracle.com/cd/E36784_01/html/E36870/uname-1.html
|
||||
# and `uname -p` returns processor type (e.g. i386 on amd64).
|
||||
# The appropriate tool to determine CPU is isainfo(1) https://docs.oracle.com/cd/E36784_01/html/E36870/isainfo-1.html.
|
||||
if [ "$os" = "sunos" ]; then
|
||||
if uname -o 2>&1 | grep -q illumos; then
|
||||
os="illumos"
|
||||
else
|
||||
os="solaris"
|
||||
fi
|
||||
CPUName=$(isainfo -n)
|
||||
else
|
||||
# For the rest of the operating systems, use uname(1) to determine what the CPU is.
|
||||
CPUName=$(uname -m)
|
||||
fi
|
||||
|
||||
case "$CPUName" in
|
||||
arm64|aarch64)
|
||||
arch=arm64
|
||||
;;
|
||||
|
||||
loongarch64)
|
||||
arch=loongarch64
|
||||
;;
|
||||
|
||||
riscv64)
|
||||
arch=riscv64
|
||||
;;
|
||||
|
||||
amd64|x86_64)
|
||||
arch=x64
|
||||
;;
|
||||
|
||||
armv7l|armv8l)
|
||||
if (NAME=""; . /etc/os-release; test "$NAME" = "Tizen"); then
|
||||
arch=armel
|
||||
else
|
||||
arch=arm
|
||||
fi
|
||||
;;
|
||||
|
||||
armv6l)
|
||||
arch=armv6
|
||||
;;
|
||||
|
||||
i[3-6]86)
|
||||
echo "Unsupported CPU $CPUName detected, build might not succeed!"
|
||||
arch=x86
|
||||
;;
|
||||
|
||||
s390x)
|
||||
arch=s390x
|
||||
;;
|
||||
|
||||
ppc64le)
|
||||
arch=ppc64le
|
||||
;;
|
||||
*)
|
||||
echo "Unknown CPU $CPUName detected!"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -2,7 +2,6 @@ param(
|
|||
[Parameter(Mandatory=$true)][int] $BuildId,
|
||||
[Parameter(Mandatory=$true)][int] $PublishingInfraVersion,
|
||||
[Parameter(Mandatory=$true)][string] $AzdoToken,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$true)][string] $WaitPublishingFinish,
|
||||
[Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters,
|
||||
|
@ -31,13 +30,13 @@ try {
|
|||
}
|
||||
|
||||
& $darc add-build-to-channel `
|
||||
--id $buildId `
|
||||
--publishing-infra-version $PublishingInfraVersion `
|
||||
--default-channels `
|
||||
--source-branch main `
|
||||
--azdev-pat $AzdoToken `
|
||||
--bar-uri $MaestroApiEndPoint `
|
||||
--password $MaestroToken `
|
||||
--id $buildId `
|
||||
--publishing-infra-version $PublishingInfraVersion `
|
||||
--default-channels `
|
||||
--source-branch main `
|
||||
--azdev-pat "$AzdoToken" `
|
||||
--bar-uri "$MaestroApiEndPoint" `
|
||||
--ci `
|
||||
@optionalParams
|
||||
|
||||
if ($LastExitCode -ne 0) {
|
||||
|
|
|
@ -22,6 +22,11 @@ $RetryWaitTimeInSeconds = 30
|
|||
# Wait time between check for system load
|
||||
$SecondsBetweenLoadChecks = 10
|
||||
|
||||
if (!$InputPath -or !(Test-Path $InputPath)){
|
||||
Write-Host "No files to validate."
|
||||
ExitWithExitCode 0
|
||||
}
|
||||
|
||||
$ValidatePackage = {
|
||||
param(
|
||||
[string] $PackagePath # Full path to a Symbols.NuGet package
|
||||
|
|
|
@ -4,9 +4,11 @@ param(
|
|||
[Parameter(Mandatory = $true)][string] $DotnetSymbolVersion, # Version of dotnet symbol to use
|
||||
[Parameter(Mandatory = $false)][switch] $CheckForWindowsPdbs, # If we should check for the existence of windows pdbs in addition to portable PDBs
|
||||
[Parameter(Mandatory = $false)][switch] $ContinueOnError, # If we should keep checking symbols after an error
|
||||
[Parameter(Mandatory = $false)][switch] $Clean # Clean extracted symbols directory after checking symbols
|
||||
[Parameter(Mandatory = $false)][switch] $Clean, # Clean extracted symbols directory after checking symbols
|
||||
[Parameter(Mandatory = $false)][string] $SymbolExclusionFile # Exclude the symbols in the file from publishing to symbol server
|
||||
)
|
||||
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
# Maximum number of jobs to run in parallel
|
||||
$MaxParallelJobs = 16
|
||||
|
||||
|
@ -25,14 +27,28 @@ if ($CheckForWindowsPdbs) {
|
|||
$WindowsPdbVerificationParam = "--windows-pdbs"
|
||||
}
|
||||
|
||||
$ExclusionSet = New-Object System.Collections.Generic.HashSet[string];
|
||||
|
||||
if (!$InputPath -or !(Test-Path $InputPath)){
|
||||
Write-Host "No symbols to validate."
|
||||
ExitWithExitCode 0
|
||||
}
|
||||
|
||||
#Check if the path exists
|
||||
if ($SymbolExclusionFile -and (Test-Path $SymbolExclusionFile)){
|
||||
[string[]]$Exclusions = Get-Content "$SymbolExclusionFile"
|
||||
$Exclusions | foreach { if($_ -and $_.Trim()){$ExclusionSet.Add($_)} }
|
||||
}
|
||||
else{
|
||||
Write-Host "Symbol Exclusion file does not exists. No symbols to exclude."
|
||||
}
|
||||
|
||||
$CountMissingSymbols = {
|
||||
param(
|
||||
[string] $PackagePath, # Path to a NuGet package
|
||||
[string] $WindowsPdbVerificationParam # If we should check for the existence of windows pdbs in addition to portable PDBs
|
||||
)
|
||||
|
||||
. $using:PSScriptRoot\..\tools.ps1
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
Write-Host "Validating $PackagePath "
|
||||
|
@ -118,17 +134,17 @@ $CountMissingSymbols = {
|
|||
# Save the output and get diagnostic output
|
||||
$output = & $dotnetSymbolExe --symbols --modules $WindowsPdbVerificationParam $TargetServerParam $FullPath -o $SymbolsPath --diagnostics | Out-String
|
||||
|
||||
if (Test-Path $PdbPath) {
|
||||
return 'PDB'
|
||||
if ((Test-Path $PdbPath) -and (Test-path $SymbolPath)) {
|
||||
return 'Module and PDB for Module'
|
||||
}
|
||||
elseif (Test-Path $NGenPdb) {
|
||||
return 'NGen PDB'
|
||||
elseif ((Test-Path $NGenPdb) -and (Test-Path $PdbPath) -and (Test-Path $SymbolPath)) {
|
||||
return 'Dll, PDB and NGen PDB'
|
||||
}
|
||||
elseif (Test-Path $SODbg) {
|
||||
return 'DBG for SO'
|
||||
elseif ((Test-Path $SODbg) -and (Test-Path $SymbolPath)) {
|
||||
return 'So and DBG for SO'
|
||||
}
|
||||
elseif (Test-Path $DylibDwarf) {
|
||||
return 'Dwarf for Dylib'
|
||||
elseif ((Test-Path $DylibDwarf) -and (Test-Path $SymbolPath)) {
|
||||
return 'Dylib and Dwarf for Dylib'
|
||||
}
|
||||
elseif (Test-Path $SymbolPath) {
|
||||
return 'Module'
|
||||
|
@ -142,37 +158,44 @@ $CountMissingSymbols = {
|
|||
return $null
|
||||
}
|
||||
|
||||
$FileGuid = New-Guid
|
||||
$ExpandedSymbolsPath = Join-Path -Path $SymbolsPath -ChildPath $FileGuid
|
||||
|
||||
$SymbolsOnMSDL = & $FirstMatchingSymbolDescriptionOrDefault `
|
||||
-FullPath $FileName `
|
||||
-TargetServerParam '--microsoft-symbol-server' `
|
||||
-SymbolsPath "$ExpandedSymbolsPath-msdl" `
|
||||
-WindowsPdbVerificationParam $WindowsPdbVerificationParam
|
||||
$SymbolsOnSymWeb = & $FirstMatchingSymbolDescriptionOrDefault `
|
||||
-FullPath $FileName `
|
||||
-TargetServerParam '--internal-server' `
|
||||
-SymbolsPath "$ExpandedSymbolsPath-symweb" `
|
||||
-WindowsPdbVerificationParam $WindowsPdbVerificationParam
|
||||
|
||||
Write-Host -NoNewLine "`t Checking file " $FileName "... "
|
||||
|
||||
if ($SymbolsOnMSDL -ne $null -and $SymbolsOnSymWeb -ne $null) {
|
||||
Write-Host "Symbols found on MSDL ($SymbolsOnMSDL) and SymWeb ($SymbolsOnSymWeb)"
|
||||
$FileRelativePath = $FileName.Replace("$ExtractPath\", "")
|
||||
if (($($using:ExclusionSet) -ne $null) -and ($($using:ExclusionSet).Contains($FileRelativePath) -or ($($using:ExclusionSet).Contains($FileRelativePath.Replace("\", "/"))))){
|
||||
Write-Host "Skipping $FileName from symbol validation"
|
||||
}
|
||||
else {
|
||||
$MissingSymbols++
|
||||
|
||||
if ($SymbolsOnMSDL -eq $null -and $SymbolsOnSymWeb -eq $null) {
|
||||
Write-Host 'No symbols found on MSDL or SymWeb!'
|
||||
else {
|
||||
$FileGuid = New-Guid
|
||||
$ExpandedSymbolsPath = Join-Path -Path $SymbolsPath -ChildPath $FileGuid
|
||||
|
||||
$SymbolsOnMSDL = & $FirstMatchingSymbolDescriptionOrDefault `
|
||||
-FullPath $FileName `
|
||||
-TargetServerParam '--microsoft-symbol-server' `
|
||||
-SymbolsPath "$ExpandedSymbolsPath-msdl" `
|
||||
-WindowsPdbVerificationParam $WindowsPdbVerificationParam
|
||||
$SymbolsOnSymWeb = & $FirstMatchingSymbolDescriptionOrDefault `
|
||||
-FullPath $FileName `
|
||||
-TargetServerParam '--internal-server' `
|
||||
-SymbolsPath "$ExpandedSymbolsPath-symweb" `
|
||||
-WindowsPdbVerificationParam $WindowsPdbVerificationParam
|
||||
|
||||
Write-Host -NoNewLine "`t Checking file " $FileName "... "
|
||||
|
||||
if ($SymbolsOnMSDL -ne $null -and $SymbolsOnSymWeb -ne $null) {
|
||||
Write-Host "Symbols found on MSDL ($SymbolsOnMSDL) and SymWeb ($SymbolsOnSymWeb)"
|
||||
}
|
||||
else {
|
||||
if ($SymbolsOnMSDL -eq $null) {
|
||||
Write-Host 'No symbols found on MSDL!'
|
||||
$MissingSymbols++
|
||||
|
||||
if ($SymbolsOnMSDL -eq $null -and $SymbolsOnSymWeb -eq $null) {
|
||||
Write-Host 'No symbols found on MSDL or SymWeb!'
|
||||
}
|
||||
else {
|
||||
Write-Host 'No symbols found on SymWeb!'
|
||||
if ($SymbolsOnMSDL -eq $null) {
|
||||
Write-Host 'No symbols found on MSDL!'
|
||||
}
|
||||
else {
|
||||
Write-Host 'No symbols found on SymWeb!'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ try {
|
|||
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
|
||||
}
|
||||
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
|
||||
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "16.10.0-preview2" -MemberType NoteProperty
|
||||
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty
|
||||
}
|
||||
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
|
||||
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true
|
||||
|
|
|
@ -5,8 +5,13 @@
|
|||
</solution>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="guardian" value="https://securitytools.pkgs.visualstudio.com/_packaging/Guardian/nuget/v3/index.json" />
|
||||
<add key="guardian" value="https://pkgs.dev.azure.com/dnceng/_packaging/Guardian1ESPTUpstreamOrgFeed/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<packageSourceMapping>
|
||||
<packageSource key="guardian">
|
||||
<package pattern="Microsoft.Guardian.Cli.win-x64" />
|
||||
</packageSource>
|
||||
</packageSourceMapping>
|
||||
<disabledPackageSources>
|
||||
<clear />
|
||||
</disabledPackageSources>
|
||||
|
|
|
@ -17,7 +17,9 @@ Param(
|
|||
# Optional: Additional params to add to any tool using PoliCheck.
|
||||
[string[]] $PoliCheckAdditionalRunConfigParams,
|
||||
# Optional: Additional params to add to any tool using CodeQL/Semmle.
|
||||
[string[]] $CodeQLAdditionalRunConfigParams
|
||||
[string[]] $CodeQLAdditionalRunConfigParams,
|
||||
# Optional: Additional params to add to any tool using Binskim.
|
||||
[string[]] $BinskimAdditionalRunConfigParams
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
@ -69,22 +71,34 @@ try {
|
|||
$gdnConfigFile = Join-Path $gdnConfigPath "$toolConfigName-configure.gdnconfig"
|
||||
|
||||
# For some tools, add default and automatic args.
|
||||
if ($tool.Name -eq 'credscan') {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "TargetDirectory < $TargetDirectory"
|
||||
switch -Exact ($tool.Name) {
|
||||
'credscan' {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "`"TargetDirectory < $TargetDirectory`""
|
||||
}
|
||||
$tool.Args += "`"OutputType < pre`""
|
||||
$tool.Args += $CrScanAdditionalRunConfigParams
|
||||
}
|
||||
$tool.Args += "OutputType < pre"
|
||||
$tool.Args += $CrScanAdditionalRunConfigParams
|
||||
} elseif ($tool.Name -eq 'policheck') {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "Target < $TargetDirectory"
|
||||
'policheck' {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "`"Target < $TargetDirectory`""
|
||||
}
|
||||
$tool.Args += $PoliCheckAdditionalRunConfigParams
|
||||
}
|
||||
$tool.Args += $PoliCheckAdditionalRunConfigParams
|
||||
} elseif ($tool.Name -eq 'semmle' -or $tool.Name -eq 'codeql') {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "`"SourceCodeDirectory < $TargetDirectory`""
|
||||
{$_ -in 'semmle', 'codeql'} {
|
||||
if ($targetDirectory) {
|
||||
$tool.Args += "`"SourceCodeDirectory < $TargetDirectory`""
|
||||
}
|
||||
$tool.Args += $CodeQLAdditionalRunConfigParams
|
||||
}
|
||||
'binskim' {
|
||||
if ($targetDirectory) {
|
||||
# Binskim crashes due to specific PDBs. GitHub issue: https://github.com/microsoft/binskim/issues/924.
|
||||
# We are excluding all `_.pdb` files from the scan.
|
||||
$tool.Args += "`"Target < $TargetDirectory\**;-:file|$TargetDirectory\**\_.pdb`""
|
||||
}
|
||||
$tool.Args += $BinskimAdditionalRunConfigParams
|
||||
}
|
||||
$tool.Args += $CodeQLAdditionalRunConfigParams
|
||||
}
|
||||
|
||||
# Create variable pointing to the args array directly so we can use splat syntax later.
|
||||
|
|
|
@ -6,7 +6,6 @@ Param(
|
|||
[string] $BranchName=$env:BUILD_SOURCEBRANCH, # Optional: name of branch or version of gdn settings; defaults to master
|
||||
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY, # Required: the directory where source files are located
|
||||
[string] $ArtifactsDirectory = (Join-Path $env:BUILD_ARTIFACTSTAGINGDIRECTORY ('artifacts')), # Required: the directory where build artifacts are located
|
||||
[string] $AzureDevOpsAccessToken, # Required: access token for dnceng; should be provided via KeyVault
|
||||
|
||||
# Optional: list of SDL tools to run on source code. See 'configure-sdl-tool.ps1' for tools list
|
||||
# format.
|
||||
|
@ -35,6 +34,7 @@ Param(
|
|||
[string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1")
|
||||
[string[]] $PoliCheckAdditionalRunConfigParams, # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1")
|
||||
[string[]] $CodeQLAdditionalRunConfigParams, # Optional: Additional Params to custom build a Semmle/CodeQL run config in the format @("xyz < abc","sdf < 1")
|
||||
[string[]] $BinskimAdditionalRunConfigParams, # Optional: Additional Params to custom build a Binskim run config in the format @("xyz < abc","sdf < 1")
|
||||
[bool] $BreakOnFailure=$False # Optional: Fail the build if there were errors during the run
|
||||
)
|
||||
|
||||
|
@ -74,7 +74,7 @@ try {
|
|||
}
|
||||
|
||||
Exec-BlockVerbosely {
|
||||
& $(Join-Path $PSScriptRoot 'init-sdl.ps1') -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $workingDirectory -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel
|
||||
& $(Join-Path $PSScriptRoot 'init-sdl.ps1') -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $workingDirectory -GuardianLoggerLevel $GuardianLoggerLevel
|
||||
}
|
||||
$gdnFolder = Join-Path $workingDirectory '.gdn'
|
||||
|
||||
|
@ -103,11 +103,11 @@ try {
|
|||
-TargetDirectory $targetDirectory `
|
||||
-GdnFolder $gdnFolder `
|
||||
-ToolsList $tools `
|
||||
-AzureDevOpsAccessToken $AzureDevOpsAccessToken `
|
||||
-GuardianLoggerLevel $GuardianLoggerLevel `
|
||||
-CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams `
|
||||
-PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams `
|
||||
-CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams
|
||||
-CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams `
|
||||
-BinskimAdditionalRunConfigParams $BinskimAdditionalRunConfigParams
|
||||
if ($BreakOnFailure) {
|
||||
Exit-IfNZEC "Sdl"
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ try {
|
|||
Exec-BlockVerbosely {
|
||||
& $(Join-Path $PSScriptRoot 'run-sdl.ps1') `
|
||||
-GuardianCliLocation $guardianCliLocation `
|
||||
-WorkingDirectory $workingDirectory `
|
||||
-WorkingDirectory $SourceDirectory `
|
||||
-UpdateBaseline $UpdateBaseline `
|
||||
-GdnFolder $gdnFolder
|
||||
}
|
||||
|
|
|
@ -35,31 +35,33 @@ try {
|
|||
param(
|
||||
[string] $PackagePath # Full path to a NuGet package
|
||||
)
|
||||
|
||||
|
||||
if (!(Test-Path $PackagePath)) {
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message "Input file does not exist: $PackagePath"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
||||
$RelevantExtensions = @('.dll', '.exe', '.pdb')
|
||||
Write-Host -NoNewLine 'Extracting ' ([System.IO.Path]::GetFileName($PackagePath)) '...'
|
||||
|
||||
|
||||
$PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath)
|
||||
$ExtractPath = Join-Path -Path $using:ExtractPath -ChildPath $PackageId
|
||||
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
|
||||
[System.IO.Directory]::CreateDirectory($ExtractPath);
|
||||
|
||||
|
||||
try {
|
||||
$zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath)
|
||||
|
||||
$zip.Entries |
|
||||
Where-Object {$RelevantExtensions -contains [System.IO.Path]::GetExtension($_.Name)} |
|
||||
ForEach-Object {
|
||||
$TargetFile = Join-Path -Path $ExtractPath -ChildPath $_.Name
|
||||
|
||||
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile, $true)
|
||||
$TargetPath = Join-Path -Path $ExtractPath -ChildPath (Split-Path -Path $_.FullName)
|
||||
[System.IO.Directory]::CreateDirectory($TargetPath);
|
||||
|
||||
$TargetFile = Join-Path -Path $ExtractPath -ChildPath $_.FullName
|
||||
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile)
|
||||
}
|
||||
}
|
||||
catch {
|
||||
|
|
|
@ -3,7 +3,6 @@ Param(
|
|||
[string] $Repository,
|
||||
[string] $BranchName='master',
|
||||
[string] $WorkingDirectory,
|
||||
[string] $AzureDevOpsAccessToken,
|
||||
[string] $GuardianLoggerLevel='Standard'
|
||||
)
|
||||
|
||||
|
@ -21,14 +20,7 @@ $ci = $true
|
|||
# Don't display the console progress UI - it's a huge perf hit
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
# Construct basic auth from AzDO access token; construct URI to the repository's gdn folder stored in that repository; construct location of zip file
|
||||
$encodedPat = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$AzureDevOpsAccessToken"))
|
||||
$escapedRepository = [Uri]::EscapeDataString("/$Repository/$BranchName/.gdn")
|
||||
$uri = "https://dev.azure.com/dnceng/internal/_apis/git/repositories/sdl-tool-cfg/Items?path=$escapedRepository&versionDescriptor[versionOptions]=0&`$format=zip&api-version=5.0"
|
||||
$zipFile = "$WorkingDirectory/gdn.zip"
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
$gdnFolder = (Join-Path $WorkingDirectory '.gdn')
|
||||
|
||||
try {
|
||||
# if the folder does not exist, we'll do a guardian init and push it to the remote repository
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.Guardian.Cli" version="0.110.1"/>
|
||||
<package id="Microsoft.Guardian.Cli" version="0.109.0"/>
|
||||
</packages>
|
||||
|
|
|
@ -4,6 +4,8 @@ function Install-Gdn {
|
|||
[Parameter(Mandatory=$true)]
|
||||
[string]$Path,
|
||||
|
||||
[string]$Source = "https://pkgs.dev.azure.com/dnceng/_packaging/Guardian1ESPTUpstreamOrgFeed/nuget/v3/index.json",
|
||||
|
||||
# If omitted, install the latest version of Guardian, otherwise install that specific version.
|
||||
[string]$Version
|
||||
)
|
||||
|
@ -19,7 +21,7 @@ function Install-Gdn {
|
|||
$ci = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
$argumentList = @("install", "Microsoft.Guardian.Cli", "-Source https://securitytools.pkgs.visualstudio.com/_packaging/Guardian/nuget/v3/index.json", "-OutputDirectory $Path", "-NonInteractive", "-NoCache")
|
||||
$argumentList = @("install", "Microsoft.Guardian.Cli.win-x64", "-Source $Source", "-OutputDirectory $Path", "-NonInteractive", "-NoCache")
|
||||
|
||||
if ($Version) {
|
||||
$argumentList += "-Version $Version"
|
||||
|
|
75
eng/common/sdl/trim-assets-version.ps1
Normal file
75
eng/common/sdl/trim-assets-version.ps1
Normal file
|
@ -0,0 +1,75 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Install and run the 'Microsoft.DotNet.VersionTools.Cli' tool with the 'trim-artifacts-version' command to trim the version from the NuGet assets file name.
|
||||
|
||||
.PARAMETER InputPath
|
||||
Full path to directory where artifact packages are stored
|
||||
|
||||
.PARAMETER Recursive
|
||||
Search for NuGet packages recursively
|
||||
|
||||
#>
|
||||
|
||||
Param(
|
||||
[string] $InputPath,
|
||||
[bool] $Recursive = $true
|
||||
)
|
||||
|
||||
$CliToolName = "Microsoft.DotNet.VersionTools.Cli"
|
||||
|
||||
function Install-VersionTools-Cli {
|
||||
param(
|
||||
[Parameter(Mandatory=$true)][string]$Version
|
||||
)
|
||||
|
||||
Write-Host "Installing the package '$CliToolName' with a version of '$version' ..."
|
||||
$feed = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json"
|
||||
|
||||
$argumentList = @("tool", "install", "--local", "$CliToolName", "--add-source $feed", "--no-cache", "--version $Version", "--create-manifest-if-needed")
|
||||
Start-Process "$dotnet" -Verbose -ArgumentList $argumentList -NoNewWindow -Wait
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
if (!(Test-Path $InputPath)) {
|
||||
Write-Host "Input Path '$InputPath' does not exist"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
$disableConfigureToolsetImport = $true
|
||||
$global:LASTEXITCODE = 0
|
||||
|
||||
# `tools.ps1` checks $ci to perform some actions. Since the SDL
|
||||
# scripts don't necessarily execute in the same agent that run the
|
||||
# build.ps1/sh script this variable isn't automatically set.
|
||||
$ci = $true
|
||||
. $PSScriptRoot\..\tools.ps1
|
||||
|
||||
try {
|
||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
||||
|
||||
$toolsetVersion = Read-ArcadeSdkVersion
|
||||
Install-VersionTools-Cli -Version $toolsetVersion
|
||||
|
||||
$cliToolFound = (& "$dotnet" tool list --local | Where-Object {$_.Split(' ')[0] -eq $CliToolName})
|
||||
if ($null -eq $cliToolFound) {
|
||||
Write-PipelineTelemetryError -Force -Category 'Sdl' -Message "The '$CliToolName' tool is not installed."
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
Exec-BlockVerbosely {
|
||||
& "$dotnet" $CliToolName trim-assets-version `
|
||||
--assets-path $InputPath `
|
||||
--recursive $Recursive
|
||||
Exit-IfNZEC "Sdl"
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-PipelineTelemetryError -Force -Category 'Sdl' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
|
@ -25,7 +25,9 @@ parameters:
|
|||
enablePublishBuildAssets: false
|
||||
enablePublishTestResults: false
|
||||
enablePublishUsingPipelines: false
|
||||
enableBuildRetry: false
|
||||
disableComponentGovernance: ''
|
||||
componentGovernanceIgnoreDirectories: ''
|
||||
mergeTestResults: false
|
||||
testRunTitle: ''
|
||||
testResultsFormat: ''
|
||||
|
@ -34,7 +36,7 @@ parameters:
|
|||
runAsPublic: false
|
||||
# Sbom related params
|
||||
enableSbom: true
|
||||
PackageVersion: 6.0.0
|
||||
PackageVersion: 7.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
|
||||
jobs:
|
||||
|
@ -94,10 +96,20 @@ jobs:
|
|||
- ${{ 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, '')) }}:
|
||||
- ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}:
|
||||
- ${{ each pair in variable }}:
|
||||
- name: ${{ pair.key }}
|
||||
value: ${{ pair.value }}
|
||||
|
@ -128,9 +140,10 @@ jobs:
|
|||
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 or(eq(parameters.artifacts.download, 'true'), ne(parameters.artifacts.download, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
buildType: current
|
||||
|
@ -148,6 +161,7 @@ jobs:
|
|||
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
|
||||
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
|
||||
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
|
||||
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
|
||||
continueOnError: true
|
||||
|
||||
- template: /eng/common/templates-official/steps/component-governance.yml
|
||||
|
@ -159,6 +173,7 @@ jobs:
|
|||
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')) }}:
|
||||
|
@ -170,7 +185,7 @@ jobs:
|
|||
TeamName: $(_TeamName)
|
||||
|
||||
- ${{ if ne(parameters.artifacts.publish, '') }}:
|
||||
- ${{ if or(eq(parameters.artifacts.publish.artifacts, 'true'), ne(parameters.artifacts.publish.artifacts, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather binaries for publish to artifacts
|
||||
inputs:
|
||||
|
@ -191,7 +206,7 @@ jobs:
|
|||
ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
- ${{ if or(eq(parameters.artifacts.publish.logs, 'true'), ne(parameters.artifacts.publish.logs, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}:
|
||||
- task: 1ES.PublishPipelineArtifact@1
|
||||
inputs:
|
||||
targetPath: 'artifacts/log'
|
||||
|
@ -200,25 +215,6 @@ jobs:
|
|||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if or(eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
|
||||
- ${{ if and(ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Asset Manifests
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/AssetManifests'
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Push Asset Manifests
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/AssetManifests'
|
||||
PublishLocation: Container
|
||||
ArtifactName: AssetManifests
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}:
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish Logs
|
||||
|
@ -251,27 +247,18 @@ jobs:
|
|||
mergeTestResults: ${{ parameters.mergeTestResults }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Asset Manifests
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
|
||||
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Push Asset Manifests
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
|
||||
PublishLocation: Container
|
||||
ArtifactName: AssetManifests
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- ${{ 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
|
|
@ -14,6 +14,7 @@ parameters:
|
|||
ReusePr: true
|
||||
UseLfLineEndings: true
|
||||
UseCheckedInLocProjectJson: false
|
||||
SkipLocProjectJsonGeneration: false
|
||||
LanguageSet: VS_Main_Languages
|
||||
LclSource: lclFilesInRepo
|
||||
LclPackageId: ''
|
||||
|
@ -22,13 +23,25 @@ parameters:
|
|||
MirrorRepo: ''
|
||||
MirrorBranch: main
|
||||
condition: ''
|
||||
JobNameSuffix: ''
|
||||
|
||||
jobs:
|
||||
- job: OneLocBuild
|
||||
- job: OneLocBuild${{ parameters.JobNameSuffix }}
|
||||
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
|
||||
displayName: OneLocBuild
|
||||
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 }}
|
||||
|
@ -42,28 +55,18 @@ jobs:
|
|||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
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
|
||||
|
||||
|
||||
steps:
|
||||
- task: Powershell@2
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
|
||||
arguments: $(_GenerateLocProjectArguments)
|
||||
displayName: Generate LocProject.json
|
||||
condition: ${{ parameters.condition }}
|
||||
- ${{ 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
|
||||
|
@ -75,8 +78,8 @@ jobs:
|
|||
lclSource: ${{ parameters.LclSource }}
|
||||
lclPackageId: ${{ parameters.LclPackageId }}
|
||||
isCreatePrSelected: ${{ parameters.CreatePr }}
|
||||
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
|
||||
${{ if eq(parameters.CreatePr, true) }}:
|
||||
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
|
||||
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
|
||||
${{ if eq(parameters.RepoType, 'gitHub') }}:
|
||||
isShouldReusePrSelected: ${{ parameters.ReusePr }}
|
||||
|
|
|
@ -23,24 +23,46 @@ parameters:
|
|||
# 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
|
||||
|
||||
displayName: Publish to Build Asset Registry
|
||||
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ 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')) }}:
|
||||
- name: _BuildConfig
|
||||
value: ${{ parameters.configuration }}
|
||||
- group: Publish-Build-Assets
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates-official/post-build/common-variables.yml
|
||||
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: AzurePipelines-EO
|
||||
image: 1ESPT-Windows2022
|
||||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
image: windows.vs2019.amd64
|
||||
os: windows
|
||||
steps:
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: DownloadBuildArtifacts@0
|
||||
|
@ -51,30 +73,25 @@ jobs:
|
|||
checkDownloadedFiles: true
|
||||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Enable cross-org NuGet feed authentication
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1
|
||||
arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw)
|
||||
|
||||
- task: PowerShell@2
|
||||
- task: AzureCLI@2
|
||||
displayName: Publish Build Assets
|
||||
inputs:
|
||||
filePath: eng\common\sdk-task.ps1
|
||||
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/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:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
|
||||
/p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
|
||||
/p:Configuration=$(_BuildConfig)
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
|
||||
- task: powershell@2
|
||||
displayName: Create ReleaseConfigs Artifact
|
||||
inputs:
|
||||
|
@ -85,7 +102,7 @@ jobs:
|
|||
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:
|
||||
|
@ -111,13 +128,33 @@ jobs:
|
|||
|
||||
- task: 1ES.PublishBuildArtifacts@1
|
||||
displayName: Publish SymbolPublishingExclusionsFile Artifact
|
||||
condition: eq(variables['SymbolExclusionFile'], 'true')
|
||||
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: AzureCLI@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion 3
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-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'
|
||||
JobLabel: 'Publish_Artifacts_Logs'
|
||||
|
|
|
@ -50,14 +50,17 @@ jobs:
|
|||
${{ 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: NetCore-Svc-Public
|
||||
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-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 }}
|
||||
|
||||
|
|
|
@ -6,12 +6,9 @@ parameters:
|
|||
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
|
||||
preSteps: []
|
||||
binlogPath: artifacts/log/Debug/Build.binlog
|
||||
pool:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
condition: ''
|
||||
dependsOn: ''
|
||||
pool: ''
|
||||
|
||||
jobs:
|
||||
- job: SourceIndexStage1
|
||||
|
@ -26,8 +23,20 @@ jobs:
|
|||
value: ${{ parameters.sourceIndexPackageSource }}
|
||||
- name: BinlogPath
|
||||
value: ${{ parameters.binlogPath }}
|
||||
- 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)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: windows.vs2022.amd64
|
||||
os: windows
|
||||
|
||||
pool: ${{ parameters.pool }}
|
||||
steps:
|
||||
- ${{ each preStep in parameters.preSteps }}:
|
||||
- ${{ preStep }}
|
||||
|
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
# 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.110.1
|
||||
value: 0.109.0
|
||||
- name: GuardianPackagesConfigFile
|
||||
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
|
||||
- name: GuardianVersion
|
||||
|
|
|
@ -20,13 +20,20 @@ parameters:
|
|||
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
|
||||
|
@ -40,7 +47,7 @@ parameters:
|
|||
jobs:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- template: ../job/job.yml
|
||||
parameters:
|
||||
parameters:
|
||||
# pass along parameters
|
||||
${{ each parameter in parameters }}:
|
||||
${{ if ne(parameter.key, 'jobs') }}:
|
||||
|
@ -68,7 +75,6 @@ jobs:
|
|||
${{ 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:
|
||||
|
@ -82,19 +88,10 @@ jobs:
|
|||
- ${{ job.job }}
|
||||
- ${{ if eq(parameters.enableSourceBuild, true) }}:
|
||||
- Source_Build_Complete
|
||||
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-Svc-Internal
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
runAsPublic: ${{ parameters.runAsPublic }}
|
||||
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
|
||||
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
|
||||
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
|
||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}
|
||||
|
|
|
@ -14,7 +14,7 @@ parameters:
|
|||
# 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-7'
|
||||
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,
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
variables:
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- group: DotNet-Blob-Feed
|
||||
- group: DotNet-DotNetCli-Storage
|
||||
- group: Publish-Build-Assets
|
||||
|
||||
# Whether the build is internal or not
|
||||
|
@ -10,7 +7,7 @@ variables:
|
|||
|
||||
# Default Maestro++ API Endpoint and API Version
|
||||
- name: MaestroApiEndPoint
|
||||
value: "https://maestro.dot.net"
|
||||
value: "https://maestro-prod.westus2.cloudapp.azure.com"
|
||||
- name: MaestroApiAccessToken
|
||||
value: $(MaestroAccessToken)
|
||||
- name: MaestroApiVersion
|
||||
|
|
|
@ -39,7 +39,7 @@ parameters:
|
|||
displayName: Enable NuGet validation
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
|
||||
- name: publishInstallersAndChecksums
|
||||
displayName: Publish installers and checksums
|
||||
type: boolean
|
||||
|
@ -49,6 +49,7 @@ parameters:
|
|||
type: object
|
||||
default:
|
||||
enable: false
|
||||
publishGdn: false
|
||||
continueOnError: false
|
||||
params: ''
|
||||
artifactNames: ''
|
||||
|
@ -82,6 +83,11 @@ parameters:
|
|||
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
|
||||
|
@ -89,10 +95,11 @@ stages:
|
|||
displayName: Validate Build Assets
|
||||
variables:
|
||||
- template: common-variables.yml
|
||||
- template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
jobs:
|
||||
- job:
|
||||
displayName: NuGet Validation
|
||||
condition: eq( ${{ parameters.enableNugetValidation }}, 'true')
|
||||
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') }}:
|
||||
|
@ -101,8 +108,8 @@ stages:
|
|||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
|
||||
|
@ -127,8 +134,8 @@ stages:
|
|||
displayName: Validate
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
|
||||
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
|
||||
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/
|
||||
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
|
||||
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/
|
||||
|
||||
- job:
|
||||
displayName: Signing Validation
|
||||
|
@ -141,8 +148,8 @@ stages:
|
|||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
|
@ -171,12 +178,6 @@ stages:
|
|||
- task: NuGetAuthenticate@1
|
||||
displayName: 'Authenticate to AzDO Feeds'
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Enable cross-org publishing
|
||||
inputs:
|
||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
|
||||
# Signing validation will optionally work with the buildmanifest file which is downloaded from
|
||||
# Azure DevOps above.
|
||||
- task: PowerShell@2
|
||||
|
@ -192,6 +193,7 @@ stages:
|
|||
parameters:
|
||||
StageLabel: 'Validation'
|
||||
JobLabel: 'Signing'
|
||||
BinlogToolVersion: $(BinlogToolVersion)
|
||||
|
||||
- job:
|
||||
displayName: SourceLink Validation
|
||||
|
@ -204,8 +206,8 @@ stages:
|
|||
demands: Cmd
|
||||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
image: 1es-windows-2022
|
||||
os: windows
|
||||
steps:
|
||||
|
@ -229,27 +231,29 @@ stages:
|
|||
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)
|
||||
arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/
|
||||
-ExtractPath $(Agent.BuildDirectory)/Extract/
|
||||
-GHRepoName $(Build.Repository.Name)
|
||||
-GHCommit $(Build.SourceVersion)
|
||||
-SourcelinkCliVersion $(SourceLinkCLIVersion)
|
||||
continueOnError: 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 }}
|
||||
${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}:
|
||||
dependsOn: ${{ parameters.validateDependsOn }}
|
||||
displayName: Publish using Darc
|
||||
variables:
|
||||
- template: common-variables.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 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
|
||||
|
@ -257,23 +261,27 @@ stages:
|
|||
os: windows
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
image: 1es-windows-2022
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
image: windows.vs2019.amd64
|
||||
os: windows
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
steps:
|
||||
- template: 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 ${{ parameters.publishingInfraVersion }}
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-MaestroToken '$(MaestroApiAccessToken)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: AzureCLI@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
|
|
12
eng/common/templates-official/steps/build-reason.yml
Normal file
12
eng/common/templates-official/steps/build-reason.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
# build-reason.yml
|
||||
# Description: runs steps if build.reason condition is valid. conditions is a string of valid build reasons
|
||||
# to include steps (',' separated).
|
||||
parameters:
|
||||
conditions: ''
|
||||
steps: []
|
||||
|
||||
steps:
|
||||
- ${{ if and( not(startsWith(parameters.conditions, 'not')), contains(parameters.conditions, variables['build.reason'])) }}:
|
||||
- ${{ parameters.steps }}
|
||||
- ${{ if and( startsWith(parameters.conditions, 'not'), not(contains(parameters.conditions, variables['build.reason']))) }}:
|
||||
- ${{ parameters.steps }}
|
|
@ -1,5 +1,6 @@
|
|||
parameters:
|
||||
disableComponentGovernance: false
|
||||
componentGovernanceIgnoreDirectories: ''
|
||||
|
||||
steps:
|
||||
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
|
||||
|
@ -7,4 +8,6 @@ steps:
|
|||
displayName: Set skipComponentGovernanceDetection variable
|
||||
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
continueOnError: true
|
||||
continueOnError: true
|
||||
inputs:
|
||||
ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
|
86
eng/common/templates-official/steps/execute-sdl.yml
Normal file
86
eng/common/templates-official/steps/execute-sdl.yml
Normal file
|
@ -0,0 +1,86 @@
|
|||
parameters:
|
||||
overrideGuardianVersion: ''
|
||||
executeAllSdlToolsScript: ''
|
||||
overrideParameters: ''
|
||||
additionalParameters: ''
|
||||
publishGuardianDirectoryToPipeline: false
|
||||
sdlContinueOnError: false
|
||||
condition: ''
|
||||
|
||||
steps:
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Install NuGet.exe'
|
||||
|
||||
- ${{ if ne(parameters.overrideGuardianVersion, '') }}:
|
||||
- pwsh: |
|
||||
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
|
||||
. .\sdl.ps1
|
||||
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }}
|
||||
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
|
||||
displayName: Install Guardian (Overridden)
|
||||
|
||||
- ${{ if eq(parameters.overrideGuardianVersion, '') }}:
|
||||
- pwsh: |
|
||||
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
|
||||
. .\sdl.ps1
|
||||
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts
|
||||
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
|
||||
displayName: Install Guardian
|
||||
|
||||
- ${{ if ne(parameters.overrideParameters, '') }}:
|
||||
- powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
|
||||
displayName: Execute SDL (Overridden)
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- ${{ if eq(parameters.overrideParameters, '') }}:
|
||||
- powershell: ${{ parameters.executeAllSdlToolsScript }}
|
||||
-GuardianCliLocation $(GuardianCliLocation)
|
||||
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
|
||||
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
|
||||
${{ parameters.additionalParameters }}
|
||||
displayName: Execute SDL
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
condition: ${{ parameters.condition }}
|
||||
|
||||
- ${{ if ne(parameters.publishGuardianDirectoryToPipeline, 'false') }}:
|
||||
# We want to publish the Guardian results and configuration for easy diagnosis. However, the
|
||||
# '.gdn' dir is a mix of configuration, results, extracted dependencies, and Guardian default
|
||||
# tooling files. Some of these files are large and aren't useful during an investigation, so
|
||||
# exclude them by simply deleting them before publishing. (As of writing, there is no documented
|
||||
# way to selectively exclude a dir from the pipeline artifact publish task.)
|
||||
- task: DeleteFiles@1
|
||||
displayName: Delete Guardian dependencies to avoid uploading
|
||||
inputs:
|
||||
SourceFolder: $(Agent.BuildDirectory)/.gdn
|
||||
Contents: |
|
||||
c
|
||||
i
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/.gdn
|
||||
artifact: GuardianConfiguration
|
||||
displayName: Publish GuardianConfiguration
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
|
||||
# with the "SARIF SAST Scans Tab" Azure DevOps extension
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy SARIF files
|
||||
inputs:
|
||||
flattenFolders: true
|
||||
sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/
|
||||
contents: '**/*.sarif'
|
||||
targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Use PublishBuildArtifacts because the SARIF extension only checks this case
|
||||
# see microsoft/sarif-azuredevops-extension#4
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish SARIF files to CodeAnalysisLogs container
|
||||
inputs:
|
||||
pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs
|
||||
artifactName: CodeAnalysisLogs
|
||||
condition: succeededOrFailed()
|
|
@ -2,12 +2,14 @@
|
|||
# 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: 6.0.0
|
||||
PackageVersion: 8.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
PackageName: '.NET'
|
||||
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
|
||||
IgnoreDirectories: ''
|
||||
sbomContinueOnError: true
|
||||
|
||||
steps:
|
||||
|
@ -34,6 +36,8 @@ steps:
|
|||
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
|
||||
|
|
|
@ -3,6 +3,12 @@ parameters:
|
|||
type: string
|
||||
- name: outputVariableName
|
||||
type: string
|
||||
- name: stepName
|
||||
type: string
|
||||
default: 'getFederatedAccessToken'
|
||||
- name: condition
|
||||
type: string
|
||||
default: ''
|
||||
# Resource to get a token for. Common values include:
|
||||
# - '499b84ac-1321-427f-aa17-267ca6975798' for Azure DevOps
|
||||
# - 'https://storage.azure.com/' for storage
|
||||
|
@ -10,10 +16,16 @@ parameters:
|
|||
- name: resource
|
||||
type: string
|
||||
default: '499b84ac-1321-427f-aa17-267ca6975798'
|
||||
- name: isStepOutputVariable
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
steps:
|
||||
- task: AzureCLI@2
|
||||
displayName: 'Getting federated access token for feeds'
|
||||
name: ${{ parameters.stepName }}
|
||||
${{ if ne(parameters.condition, '') }}:
|
||||
condition: ${{ parameters.condition }}
|
||||
inputs:
|
||||
azureSubscription: ${{ parameters.federatedServiceConnection }}
|
||||
scriptType: 'pscore'
|
||||
|
@ -25,4 +37,4 @@ steps:
|
|||
exit 1
|
||||
}
|
||||
Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
|
||||
Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$accessToken"
|
||||
Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true;isOutput=${{ parameters.isStepOutputVariable }}]$accessToken"
|
|
@ -3,7 +3,7 @@ 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
|
||||
HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
|
||||
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
|
||||
HelixConfiguration: '' # optional -- additional property attached to a job
|
||||
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
|
||||
|
@ -12,7 +12,7 @@ parameters:
|
|||
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
|
||||
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
|
||||
|
@ -20,17 +20,16 @@ parameters:
|
|||
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
|
||||
EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control
|
||||
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 int)
|
||||
HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net )
|
||||
Creator: '' # optional -- if the build is external, use this to specify who is sending the job
|
||||
DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO
|
||||
condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
|
||||
continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
|
||||
|
||||
steps:
|
||||
- powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
|
||||
- powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
|
||||
displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
|
||||
env:
|
||||
BuildConfig: $(_BuildConfig)
|
||||
|
@ -54,14 +53,13 @@ steps:
|
|||
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
|
||||
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
|
||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||
Creator: ${{ parameters.Creator }}
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
- script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
|
||||
- script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
|
||||
displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
|
||||
env:
|
||||
BuildConfig: $(_BuildConfig)
|
||||
|
@ -85,7 +83,6 @@ steps:
|
|||
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
|
||||
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
|
||||
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||
HelixBaseUri: ${{ parameters.HelixBaseUri }}
|
||||
Creator: ${{ parameters.Creator }}
|
||||
|
|
|
@ -23,7 +23,7 @@ steps:
|
|||
# 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=
|
||||
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
|
||||
|
@ -68,11 +68,21 @@ steps:
|
|||
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 \
|
||||
|
@ -81,8 +91,10 @@ steps:
|
|||
$internalRestoreArgs \
|
||||
$targetRidArgs \
|
||||
$runtimeOsArgs \
|
||||
$baseOsArgs \
|
||||
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
|
||||
/p:ArcadeBuildFromSource=true
|
||||
/p:ArcadeBuildFromSource=true \
|
||||
/p:AssetManifestFileName=$assetManifestFileName
|
||||
displayName: Build
|
||||
|
||||
# Upload build logs for diagnosis.
|
||||
|
@ -106,3 +118,12 @@ steps:
|
|||
artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt)
|
||||
continueOnError: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# Manually inject component detection so that we can ignore the source build upstream cache, which contains
|
||||
# a nupkg cache of input packages (a local feed).
|
||||
# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir'
|
||||
# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
displayName: Component Detection (Exclude upstream cache)
|
||||
inputs:
|
||||
ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
|
||||
|
|
45
eng/common/templates-official/variables/pool-providers.yml
Normal file
45
eng/common/templates-official/variables/pool-providers.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool,
|
||||
# otherwise it should go into the "normal" pools. This separates out the queueing and billing of released branches.
|
||||
|
||||
# Motivation:
|
||||
# Once a given branch of a repository's output has been officially "shipped" once, it is then considered to be COGS
|
||||
# (Cost of goods sold) and should be moved to a servicing pool provider. This allows both separation of queueing
|
||||
# (allowing release builds and main PR builds to not intefere with each other) and billing (required for COGS.
|
||||
# Additionally, the pool provider name itself may be subject to change when the .NET Core Engineering Services
|
||||
# team needs to move resources around and create new and potentially differently-named pools. Using this template
|
||||
# file from an Arcade-ified repo helps guard against both having to update one's release/* branches and renaming.
|
||||
|
||||
# How to use:
|
||||
# This yaml assumes your shipped product branches use the naming convention "release/..." (which many do).
|
||||
# If we find alternate naming conventions in broad usage it can be added to the condition below.
|
||||
#
|
||||
# First, import the template in an arcade-ified repo to pick up the variables, e.g.:
|
||||
#
|
||||
# variables:
|
||||
# - template: /eng/common/templates-official/variables/pool-providers.yml
|
||||
#
|
||||
# ... then anywhere specifying the pool provider use the runtime variables,
|
||||
# $(DncEngInternalBuildPool)
|
||||
#
|
||||
# pool:
|
||||
# name: $(DncEngInternalBuildPool)
|
||||
# image: 1es-windows-2022
|
||||
|
||||
variables:
|
||||
# Coalesce the target and source branches so we know when a PR targets a release branch
|
||||
# If these variables are somehow missing, fall back to main (tends to have more capacity)
|
||||
|
||||
# Any new -Svc alternative pools should have variables added here to allow for splitting work
|
||||
|
||||
- name: DncEngInternalBuildPool
|
||||
value: $[
|
||||
replace(
|
||||
replace(
|
||||
eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'),
|
||||
True,
|
||||
'NetCore1ESPool-Svc-Internal'
|
||||
),
|
||||
False,
|
||||
'NetCore1ESPool-Internal'
|
||||
)
|
||||
]
|
|
@ -2,6 +2,6 @@ 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.110.1
|
||||
value: 0.109.0
|
||||
- name: GuardianPackagesConfigFile
|
||||
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
- job: Run_SDL
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
displayName: Run SDL tool
|
||||
condition: eq( ${{ parameters.enable }}, 'true')
|
||||
condition: and(succeededOrFailed(), eq( ${{ parameters.enable }}, 'true'))
|
||||
variables:
|
||||
- group: DotNet-VSTS-Bot
|
||||
- name: AzDOProjectName
|
||||
|
@ -46,6 +46,7 @@ jobs:
|
|||
- template: /eng/common/templates/variables/sdl-variables.yml
|
||||
- name: GuardianVersion
|
||||
value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }}
|
||||
- template: /eng/common/templates/variables/pool-providers.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') }}:
|
||||
|
@ -53,13 +54,15 @@ jobs:
|
|||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- template: /eng/common/templates/post-build/setup-maestro-vars.yml
|
||||
# If the template caller didn't provide an AzDO parameter, set them all up as Maestro vars.
|
||||
- ${{ if not(and(parameters.AzDOProjectName, parameters.AzDOPipelineId, parameters.AzDOBuildId)) }}:
|
||||
- template: /eng/common/templates/post-build/setup-maestro-vars.yml
|
||||
|
||||
- ${{ if ne(parameters.downloadArtifacts, 'false')}}:
|
||||
- ${{ if ne(parameters.artifactNames, '') }}:
|
||||
|
@ -102,6 +105,11 @@ jobs:
|
|||
downloadPath: $(Build.ArtifactStagingDirectory)\artifacts
|
||||
checkDownloadedFiles: true
|
||||
|
||||
- powershell: eng/common/sdl/trim-assets-version.ps1
|
||||
-InputPath $(Build.ArtifactStagingDirectory)\artifacts
|
||||
displayName: Trim the version from the NuGet packages
|
||||
continueOnError: ${{ parameters.sdlContinueOnError }}
|
||||
|
||||
- powershell: eng/common/sdl/extract-artifact-packages.ps1
|
||||
-InputPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
||||
-ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts
|
||||
|
|
|
@ -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
|
||||
|
@ -24,7 +25,9 @@ parameters:
|
|||
enablePublishBuildAssets: false
|
||||
enablePublishTestResults: false
|
||||
enablePublishUsingPipelines: false
|
||||
enableBuildRetry: false
|
||||
disableComponentGovernance: ''
|
||||
componentGovernanceIgnoreDirectories: ''
|
||||
mergeTestResults: false
|
||||
testRunTitle: ''
|
||||
testResultsFormat: ''
|
||||
|
@ -33,7 +36,7 @@ parameters:
|
|||
runAsPublic: false
|
||||
# Sbom related params
|
||||
enableSbom: true
|
||||
PackageVersion: 6.0.0
|
||||
PackageVersion: 7.0.0
|
||||
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
|
||||
|
||||
jobs:
|
||||
|
@ -66,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
|
||||
|
@ -90,10 +96,20 @@ jobs:
|
|||
- ${{ 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, '')) }}:
|
||||
- ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}:
|
||||
- ${{ each pair in variable }}:
|
||||
- name: ${{ pair.key }}
|
||||
value: ${{ pair.value }}
|
||||
|
@ -123,9 +139,10 @@ jobs:
|
|||
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 or(eq(parameters.artifacts.download, 'true'), ne(parameters.artifacts.download, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
buildType: current
|
||||
|
@ -143,6 +160,7 @@ jobs:
|
|||
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
|
||||
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
|
||||
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
|
||||
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
|
||||
continueOnError: true
|
||||
|
||||
- template: /eng/common/templates/steps/component-governance.yml
|
||||
|
@ -154,6 +172,7 @@ jobs:
|
|||
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')) }}:
|
||||
|
@ -165,7 +184,7 @@ jobs:
|
|||
TeamName: $(_TeamName)
|
||||
|
||||
- ${{ if ne(parameters.artifacts.publish, '') }}:
|
||||
- ${{ if or(eq(parameters.artifacts.publish.artifacts, 'true'), ne(parameters.artifacts.publish.artifacts, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather binaries for publish to artifacts
|
||||
inputs:
|
||||
|
@ -186,30 +205,12 @@ jobs:
|
|||
ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
- ${{ if or(eq(parameters.artifacts.publish.logs, 'true'), ne(parameters.artifacts.publish.logs, '')) }}:
|
||||
- ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}:
|
||||
- publish: artifacts/log
|
||||
artifact: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }}
|
||||
displayName: Publish logs
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
- ${{ if or(eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
|
||||
- ${{ if and(ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Asset Manifests
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/AssetManifests'
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Push Asset Manifests
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/AssetManifests'
|
||||
PublishLocation: Container
|
||||
ArtifactName: AssetManifests
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}:
|
||||
- task: PublishBuildArtifacts@1
|
||||
|
@ -243,27 +244,16 @@ jobs:
|
|||
mergeTestResults: ${{ parameters.mergeTestResults }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather Asset Manifests
|
||||
inputs:
|
||||
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
|
||||
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Push Asset Manifests
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
|
||||
PublishLocation: Container
|
||||
ArtifactName: AssetManifests
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}:
|
||||
- template: /eng/common/templates/steps/generate-sbom.yml
|
||||
parameters:
|
||||
PackageVersion: ${{ parameters.packageVersion}}
|
||||
BuildDropPath: ${{ parameters.buildDropPath }}
|
||||
IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
|
||||
|
||||
- ${{ if eq(parameters.enableBuildRetry, 'true') }}:
|
||||
- publish: $(Build.SourcesDirectory)\eng\common\BuildConfiguration
|
||||
artifact: BuildConfiguration
|
||||
displayName: Publish build retry configuration
|
||||
continueOnError: true
|
||||
|
|
|
@ -14,6 +14,7 @@ parameters:
|
|||
ReusePr: true
|
||||
UseLfLineEndings: true
|
||||
UseCheckedInLocProjectJson: false
|
||||
SkipLocProjectJsonGeneration: false
|
||||
LanguageSet: VS_Main_Languages
|
||||
LclSource: lclFilesInRepo
|
||||
LclPackageId: ''
|
||||
|
@ -22,13 +23,25 @@ parameters:
|
|||
MirrorRepo: ''
|
||||
MirrorBranch: main
|
||||
condition: ''
|
||||
JobNameSuffix: ''
|
||||
|
||||
jobs:
|
||||
- job: OneLocBuild
|
||||
- job: OneLocBuild${{ parameters.JobNameSuffix }}
|
||||
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
|
||||
displayName: OneLocBuild
|
||||
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/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
|
@ -40,27 +53,17 @@ jobs:
|
|||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
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
|
||||
|
||||
|
||||
steps:
|
||||
- task: Powershell@2
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
|
||||
arguments: $(_GenerateLocProjectArguments)
|
||||
displayName: Generate LocProject.json
|
||||
condition: ${{ parameters.condition }}
|
||||
- ${{ 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
|
||||
|
@ -72,8 +75,8 @@ jobs:
|
|||
lclSource: ${{ parameters.LclSource }}
|
||||
lclPackageId: ${{ parameters.LclPackageId }}
|
||||
isCreatePrSelected: ${{ parameters.CreatePr }}
|
||||
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
|
||||
${{ if eq(parameters.CreatePr, true) }}:
|
||||
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
|
||||
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
|
||||
${{ if eq(parameters.RepoType, 'gitHub') }}:
|
||||
isShouldReusePrSelected: ${{ parameters.ReusePr }}
|
||||
|
|
|
@ -23,23 +23,43 @@ parameters:
|
|||
# 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
|
||||
|
||||
displayName: Publish to Build Asset Registry
|
||||
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
displayName: Publish Assets
|
||||
${{ else }}:
|
||||
displayName: Publish to Build Asset Registry
|
||||
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- name: _BuildConfig
|
||||
value: ${{ parameters.configuration }}
|
||||
- group: Publish-Build-Assets
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates/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: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
steps:
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
|
@ -52,25 +72,20 @@ jobs:
|
|||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: NuGetAuthenticate@1
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Enable cross-org NuGet feed authentication
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1
|
||||
arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw)
|
||||
|
||||
- task: PowerShell@2
|
||||
- task: AzureCLI@2
|
||||
displayName: Publish Build Assets
|
||||
inputs:
|
||||
filePath: eng\common\sdk-task.ps1
|
||||
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/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:Configuration=$(_BuildConfig)
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
@ -114,7 +129,27 @@ jobs:
|
|||
PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
|
||||
PublishLocation: Container
|
||||
ArtifactName: ReleaseConfigs
|
||||
|
||||
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates/post-build/setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: AzureCLI@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion 3
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
|
||||
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
|
||||
- template: /eng/common/templates/steps/publish-logs.yml
|
||||
parameters:
|
||||
|
|
|
@ -50,13 +50,16 @@ jobs:
|
|||
${{ 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/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: NetCore-Svc-Public
|
||||
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCore1ESPool-Svc-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')]
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
|
||||
${{ if ne(parameters.platform.pool, '') }}:
|
||||
pool: ${{ parameters.platform.pool }}
|
||||
|
||||
|
|
|
@ -6,10 +6,9 @@ parameters:
|
|||
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
|
||||
preSteps: []
|
||||
binlogPath: artifacts/log/Debug/Build.binlog
|
||||
pool:
|
||||
vmImage: windows-2019
|
||||
condition: ''
|
||||
dependsOn: ''
|
||||
pool: ''
|
||||
|
||||
jobs:
|
||||
- job: SourceIndexStage1
|
||||
|
@ -24,8 +23,19 @@ jobs:
|
|||
value: ${{ parameters.sourceIndexPackageSource }}
|
||||
- name: BinlogPath
|
||||
value: ${{ parameters.binlogPath }}
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
||||
${{ if ne(parameters.pool, '') }}:
|
||||
pool: ${{ parameters.pool }}
|
||||
${{ if eq(parameters.pool, '') }}:
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
pool: ${{ parameters.pool }}
|
||||
steps:
|
||||
- ${{ each preStep in parameters.preSteps }}:
|
||||
- ${{ preStep }}
|
||||
|
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
# 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.110.1
|
||||
value: 0.109.0
|
||||
- name: GuardianPackagesConfigFile
|
||||
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
|
||||
- name: GuardianVersion
|
||||
|
|
|
@ -20,13 +20,20 @@ parameters:
|
|||
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
|
||||
|
@ -40,7 +47,7 @@ parameters:
|
|||
jobs:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- template: ../job/job.yml
|
||||
parameters:
|
||||
parameters:
|
||||
# pass along parameters
|
||||
${{ each parameter in parameters }}:
|
||||
${{ if ne(parameter.key, 'jobs') }}:
|
||||
|
@ -68,7 +75,6 @@ jobs:
|
|||
${{ 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:
|
||||
|
@ -82,16 +88,10 @@ jobs:
|
|||
- ${{ job.job }}
|
||||
- ${{ if eq(parameters.enableSourceBuild, true) }}:
|
||||
- Source_Build_Complete
|
||||
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: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ else }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
runAsPublic: ${{ parameters.runAsPublic }}
|
||||
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
|
||||
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
|
||||
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
|
||||
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
|
||||
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}
|
||||
|
|
|
@ -14,7 +14,7 @@ parameters:
|
|||
# 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-7'
|
||||
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,
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
variables:
|
||||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- group: DotNet-Blob-Feed
|
||||
- group: DotNet-DotNetCli-Storage
|
||||
- group: Publish-Build-Assets
|
||||
|
||||
# Whether the build is internal or not
|
||||
|
|
|
@ -49,6 +49,7 @@ parameters:
|
|||
type: object
|
||||
default:
|
||||
enable: false
|
||||
publishGdn: false
|
||||
continueOnError: false
|
||||
params: ''
|
||||
artifactNames: ''
|
||||
|
@ -82,6 +83,11 @@ parameters:
|
|||
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
|
||||
|
@ -89,18 +95,19 @@ stages:
|
|||
displayName: Validate Build Assets
|
||||
variables:
|
||||
- template: common-variables.yml
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
jobs:
|
||||
- job:
|
||||
displayName: NuGet Validation
|
||||
condition: eq( ${{ parameters.enableNugetValidation }}, 'true')
|
||||
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: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
|
||||
steps:
|
||||
|
@ -136,8 +143,8 @@ stages:
|
|||
name: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
|
@ -165,12 +172,6 @@ stages:
|
|||
- task: NuGetAuthenticate@1
|
||||
displayName: 'Authenticate to AzDO Feeds'
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Enable cross-org publishing
|
||||
inputs:
|
||||
filePath: eng\common\enable-cross-org-publishing.ps1
|
||||
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
|
||||
# Signing validation will optionally work with the buildmanifest file which is downloaded from
|
||||
# Azure DevOps above.
|
||||
- task: PowerShell@2
|
||||
|
@ -196,8 +197,8 @@ stages:
|
|||
name: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
# If it's not devdiv, it's dnceng
|
||||
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
${{ else }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
|
@ -230,25 +231,28 @@ stages:
|
|||
- template: /eng/common/templates/job/execute-sdl.yml
|
||||
parameters:
|
||||
enable: ${{ parameters.SDLValidationParameters.enable }}
|
||||
publishGuardianDirectoryToPipeline: ${{ parameters.SDLValidationParameters.publishGdn }}
|
||||
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
|
||||
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
|
||||
artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
|
||||
downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }}
|
||||
|
||||
- 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 }}
|
||||
${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}:
|
||||
dependsOn: ${{ parameters.validateDependsOn }}
|
||||
displayName: Publish using Darc
|
||||
variables:
|
||||
- template: common-variables.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 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/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: VSEngSS-MicroBuild2022-1ES
|
||||
demands: Cmd
|
||||
|
@ -256,20 +260,24 @@ stages:
|
|||
${{ else }}:
|
||||
name: NetCore1ESPool-Publishing-Internal
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
steps:
|
||||
- template: setup-maestro-vars.yml
|
||||
parameters:
|
||||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
steps:
|
||||
- template: 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 ${{ parameters.publishingInfraVersion }}
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-MaestroToken '$(MaestroApiAccessToken)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: AzureCLI@2
|
||||
displayName: Publish Using Darc
|
||||
inputs:
|
||||
azureSubscription: "Darc: Maestro Production"
|
||||
scriptType: ps
|
||||
scriptLocation: scriptPath
|
||||
scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
|
||||
arguments: -BuildId $(BARBuildId)
|
||||
-PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
|
||||
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
-WaitPublishingFinish true
|
||||
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
|
||||
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue