Merge branch 'main' into add-emsdk-manifest-to-sb

This commit is contained in:
Jo Shields 2023-02-01 08:25:03 -05:00 committed by GitHub
commit 173d7b5a34
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 51 additions and 65 deletions

View file

@ -21,7 +21,7 @@ parameters:
- name: vmrBranch
displayName: dotnet/dotnet branch to push to
type: string
default: $(Build.SourceBranch)
default: ''
- name: disableVmrBuild
displayName: Skip source-building the VMR
@ -48,6 +48,13 @@ variables:
- name: _InternalRuntimeDownloadArgs
value: ''
- ${{ if ne(parameters.vmrBranch, '') }}:
- name: VmrBranch
value: ${{ parameters.vmrBranch }}
- ${{ else }}:
- name: VmrBranch
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: DotNetBuilds storage account read tokens
- name: _InternalRuntimeDownloadArgs
@ -369,7 +376,7 @@ stages:
- ${{ if and(eq(variables['Build.Reason'], 'PullRequest'), not(parameters.disableVmrBuild)) }}:
- template: eng/pipelines/templates/stages/vmr-build.yml
parameters:
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
isBuiltFromVmr: false
# In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate
@ -381,7 +388,7 @@ stages:
jobs:
- template: eng/pipelines/templates/jobs/vmr-synchronization.yml
parameters:
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: Publish

View file

@ -93,8 +93,6 @@ Further instructions on how to build inside of the Codespace will be available u
cd /path/to/complete/dotnet/sources
./prep.sh
```
On arm64, please use `./prep.sh --bootstrap` instead.
3. Build the .NET SDK

View file

@ -45,9 +45,6 @@ parameters:
- name: excludeOmniSharpTests
type: boolean
- name: bootstrapPrep
type: boolean
- name: enablePoison
type: boolean
@ -154,12 +151,7 @@ jobs:
set -x
if [[ -z '${{ parameters.reuseBuildArtifactsFrom }}' ]]; then
customPrepArgs=
if [[ '${{ parameters.bootstrapPrep }}' == 'True' ]]; then
customPrepArgs='--bootstrap'
fi
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep.sh ${customPrepArgs}
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep.sh
else
mkdir $(sourcesPath)/.dotnet
previousSdkPath="$(sourcesPath)/packages/archive/dotnet-sdk-*.tar.gz"

View file

@ -25,8 +25,6 @@ jobs:
- template: /eng/common/templates/variables/pool-providers.yml
- name: vmrPath
value: $(Agent.BuildDirectory)/vmr
- name: vmrBranchName
value: ${{ replace(parameters.vmrBranch, 'refs/heads/', '') }}
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: DotNetBot-GitHub
- ${{ else }}:
@ -61,9 +59,9 @@ jobs:
git config --global user.email 'dotnet-maestro[bot]@users.noreply.github.com' && git config --global user.name 'dotnet-maestro[bot]'
git remote add dotnet 'https://$(BotAccount-dotnet-bot-repo-PAT)@github.com/dotnet/dotnet.git'
git fetch dotnet
git branch $(vmrBranchName)
git branch --set-upstream-to=dotnet/$(vmrBranchName) $(vmrBranchName) || echo 'Branch $(vmrBranchName) not found in remote'
git push dotnet $(vmrBranchName)
git branch ${{ parameters.vmrBranch }}
git branch --set-upstream-to=dotnet/${{ parameters.vmrBranch }} ${{ parameters.vmrBranch }} || echo 'Branch ${{ parameters.vmrBranch }} not found in remote'
git push dotnet ${{ parameters.vmrBranch }}
displayName: Push changes to dotnet/dotnet
workingDirectory: $(vmrPath)
condition: and(succeeded(), or(eq(variables['vmrBranchName'], 'main'), startsWith(variables['vmrBranchName'], 'release/')))
condition: and(succeeded(), or(eq(variables['vmrBranch'], 'main'), startsWith(variables['vmrBranch'], 'release/')))

View file

@ -57,18 +57,24 @@ stages:
- name: defaultPoolDemands
value: ${{ parameters.poolInternalAmd64.demands }}
- ${{ if ne(parameters.vmrBranch, '') }}:
- name: VmrBranch
value: ${{ parameters.vmrBranch }}
- ${{ else }}:
- name: VmrBranch
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
jobs:
- template: ../jobs/vmr-build.yml
parameters:
buildName: CentOSStream8_Online
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
bootstrapPrep: true # ✅
buildFromArchive: false # 🚫
enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅
@ -81,13 +87,12 @@ stages:
parameters:
buildName: CentOSStream8_Offline
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
bootstrapPrep: true # ✅
buildFromArchive: true # ✅
enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅
@ -99,13 +104,12 @@ stages:
parameters:
buildName: CentOSStream9_Offline
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream9Container }}
bootstrapPrep: true # ✅
buildFromArchive: true # ✅
enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫
@ -117,13 +121,12 @@ stages:
parameters:
buildName: Fedora36_Offline
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.fedora36Container }}
bootstrapPrep: true # 🚫
buildFromArchive: true # ✅
enablePoison: true # ✅
excludeOmniSharpTests: false # 🚫
@ -135,13 +138,12 @@ stages:
parameters:
buildName: Ubuntu2004_Offline
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.ubuntu2004Container }}
bootstrapPrep: true # ✅
buildFromArchive: false # 🚫
enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫
@ -153,11 +155,10 @@ stages:
parameters:
buildName: Debian11_Offline
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: arm64
pool: ${{ parameters.poolInternalArm64 }}
container: ${{ parameters.debian11Arm64Container }}
bootstrapPrep: true # ✅
buildFromArchive: false # 🚫
enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫
@ -169,13 +170,12 @@ stages:
parameters:
buildName: Fedora36_Offline_Using_Previous
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ parameters.vmrBranch }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.fedora36Container }}
bootstrapPrep: true # 🚫
buildFromArchive: false # 🚫
enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫

View file

@ -30,8 +30,7 @@ steps:
- ${{ if or(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal')) }}:
- script: |
branch_name=$(echo '${{ parameters.vmrBranch }}' | sed -e "s#^/refs/heads/##")
git switch -c "$branch_name"
git switch -c ${{ parameters.vmrBranch }}
displayName: Checkout ${{ parameters.vmrBranch }}
workingDirectory: $(Agent.BuildDirectory)/vmr

View file

@ -23,9 +23,8 @@ steps:
path: installer
- script: |
branch_name=$(echo '${{ parameters.vmrBranch }}' | sed -e "s#^/refs/heads/##")
git checkout -B "$branch_name"
echo "##vso[task.setvariable variable=vmrBranch]$branch_name"
git checkout -B ${{ parameters.vmrBranch }}
echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}"
displayName: Prepare branch ${{ parameters.vmrBranch }}
workingDirectory: ${{ parameters.vmrPath }}
@ -33,7 +32,7 @@ steps:
./eng/vmr-sync.sh
--vmr ${{ parameters.vmrPath }}
--tmp $(Agent.TempDirectory)
--branch $(echo '${{ parameters.vmrBranch }}' | sed -e "s#^/refs/heads/##")
--branch ${{ parameters.vmrBranch }}
--target-ref ${{ parameters.targetRef }}
displayName: Synchronize dotnet/dotnet
workingDirectory: $(Agent.BuildDirectory)/installer

View file

@ -5,14 +5,10 @@ IFS=$'\n\t'
SCRIPT_ROOT="$(cd -P "$( dirname "$0" )" && pwd)"
usage() {
echo "usage: $0 [options]"
echo "usage: $0"
echo ""
echo " Prepares the environment to be built by downloading Private.SourceBuilt.Artifacts.*.tar.gz and"
echo " installing the version of dotnet referenced in global.json"
echo "options:"
echo " --bootstrap Build a bootstrap version of previously source-built packages archive."
echo " This modifies the downloaded version, replacing portable packages"
echo " with official ms-built packages restored from package feeds."
echo ""
}
@ -28,9 +24,6 @@ while :; do
usage
exit 0
;;
--bootstrap)
buildBootstrap=true
;;
*)
positional_args+=("$1")
;;
@ -95,23 +88,7 @@ function DownloadArchive {
fi
}
# Read the eng/Versions.props to get the archives to download and download them
if [ "$downloadArtifacts" == "true" ]; then
DownloadArchive "Artifacts" $artifactsBaseFileName "true"
fi
if [ "$downloadPrebuilts" == "true" ]; then
DownloadArchive "Prebuilts" $prebuiltsBaseFileName "false"
fi
# Check for the version of dotnet to install
if [ "$installDotnet" == "true" ]; then
echo " Installing dotnet..."
(source ./eng/common/tools.sh && InitializeDotNetCli true)
fi
# Build bootstrap, if specified
if [ "$buildBootstrap" == "true" ]; then
function BootstrapArtifacts {
DOTNET_SDK_PATH="$SCRIPT_ROOT/.dotnet"
# Create working directory for running bootstrap project
@ -136,4 +113,20 @@ if [ "$buildBootstrap" == "true" ]; then
# Remove working directory
rm -rf $workingDir
}
# Check for the version of dotnet to install
if [ "$installDotnet" == "true" ]; then
echo " Installing dotnet..."
(source ./eng/common/tools.sh && InitializeDotNetCli true)
fi
# Read the eng/Versions.props to get the archives to download and download them
if [ "$downloadArtifacts" == "true" ]; then
DownloadArchive "Artifacts" $artifactsBaseFileName "true"
BootstrapArtifacts
fi
if [ "$downloadPrebuilts" == "true" ]; then
DownloadArchive "Prebuilts" $prebuiltsBaseFileName "false"
fi