Skip to content

Commit 793650a

Browse files
authored
Merge pull request #4598 from devlead/feature/gh-4597
GH4597: Add option to install supported SDKs in build.sh/ps1
2 parents 6abe857 + 6c16eaf commit 793650a

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

build.ps1

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,80 @@ if (!(Test-Path $InstallPath)) {
6464
New-Item -Path $InstallPath -ItemType Directory -Force | Out-Null;
6565
}
6666

67+
[bool]$InstallSupportedSdks = $env:CAKE_INSTALL_SUPPORTED_SDKS -eq "true" -or [string]::IsNullOrWhiteSpace($env:TEAMCITY_VERSION) -eq $false
68+
[string]$InstallSdkVersion = $env:CAKE_INSTALL_SDK_VERSION
69+
[bool]$InstallSpecificSdkVersion = [string]::IsNullOrWhiteSpace($InstallSdkVersion) -eq $false
70+
6771
if ($IsMacOS -or $IsLinux) {
6872
$ScriptPath = Join-Path $InstallPath 'dotnet-install.sh'
6973
(New-Object System.Net.WebClient).DownloadFile($DotNetUnixInstallerUri, $ScriptPath);
74+
75+
# Install additional SDK channels if CAKE_INSTALL_SUPPORTED_SDKS is set to true
76+
if ($InstallSupportedSdks) {
77+
Write-Host "Installing additional supported SDK channels..."
78+
79+
# Install .NET 8.0 SDK
80+
Write-Host "Installing .NET 8.0 SDK..."
81+
& bash $ScriptPath --channel 8.0 --install-dir "$InstallPath" --no-path
82+
83+
# Install .NET 9.0 SDK
84+
Write-Host "Installing .NET 9.0 SDK..."
85+
& bash $ScriptPath --channel 9.0 --install-dir "$InstallPath" --no-path --skip-non-versioned-files
86+
87+
# Install .NET 10.0 SDK (preview quality)
88+
Write-Host "Installing .NET 10.0 SDK (preview)..."
89+
& bash $ScriptPath --channel 10.0 --quality preview --install-dir "$InstallPath" --no-path --skip-non-versioned-files
90+
}
91+
92+
# Install SDK from global.json
7093
& bash $ScriptPath --jsonfile "$GlobalJsonPath" --install-dir "$InstallPath" --no-path
7194

95+
# Install specific SDK version if CAKE_INSTALL_SDK_VERSION is set
96+
if ($InstallSpecificSdkVersion) {
97+
Write-Host "Installing .NET $InstallSdkVersion SDK..."
98+
& bash $ScriptPath --version $InstallSdkVersion --install-dir "$InstallPath" --no-path
99+
}
100+
72101
Remove-PathVariable "$InstallPath"
73102
$env:PATH = "$($InstallPath):$env:PATH"
74103
}
75104
else {
76105
$ScriptPath = Join-Path $InstallPath 'dotnet-install.ps1'
77106
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallerUri, $ScriptPath);
107+
108+
# Install additional SDK channels if CAKE_INSTALL_SUPPORTED_SDKS is set to true
109+
if ($InstallSupportedSdks) {
110+
Write-Host "Installing additional supported SDK channels..."
111+
112+
# Install .NET 8.0 SDK
113+
Write-Host "Installing .NET 8.0 SDK..."
114+
& $ScriptPath -Channel 8.0 -InstallDir $InstallPath -NoPath
115+
116+
# Install .NET 9.0 SDK
117+
Write-Host "Installing .NET 9.0 SDK..."
118+
& $ScriptPath -Channel 9.0 -InstallDir $InstallPath -NoPath -SkipNonVersionedFiles
119+
120+
# Install .NET 10.0 SDK (preview quality)
121+
Write-Host "Installing .NET 10.0 SDK (preview)..."
122+
& $ScriptPath -Channel 10.0 -Quality preview -InstallDir $InstallPath -NoPath -SkipNonVersionedFiles
123+
}
124+
125+
# Install SDK from global.json
78126
& $ScriptPath -JSonFile $GlobalJsonPath -InstallDir $InstallPath;
79127

128+
# Install specific SDK version if CAKE_INSTALL_SDK_VERSION is set
129+
if ($InstallSpecificSdkVersion) {
130+
Write-Host "Installing .NET $InstallSdkVersion SDK..."
131+
& $ScriptPath -Version $InstallSdkVersion -InstallDir $InstallPath -NoPath
132+
}
133+
80134
Remove-PathVariable "$InstallPath"
81135
$env:PATH = "$InstallPath;$env:PATH"
82136
}
83137
$env:DOTNET_ROOT=$InstallPath
84138

139+
& dotnet --info
140+
85141
###########################################################################
86142
# INSTALL CAKE
87143
###########################################################################

build.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,38 @@ if [ ! -d "$SCRIPT_DIR/.dotnet" ]; then
2222
mkdir "$SCRIPT_DIR/.dotnet"
2323
fi
2424
curl -Lsfo "$SCRIPT_DIR/.dotnet/dotnet-install.sh" https://dot.net/v1/dotnet-install.sh
25+
26+
# Install additional SDK channels if CAKE_INSTALL_SUPPORTED_SDKS is set to true
27+
if [ "$CAKE_INSTALL_SUPPORTED_SDKS" = "true" ]; then
28+
echo "Installing additional supported SDK channels..."
29+
30+
# Install .NET 8.0 SDK
31+
echo "Installing .NET 8.0 SDK..."
32+
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --channel 8.0 --install-dir .dotnet --no-path
33+
34+
# Install .NET 9.0 SDK
35+
echo "Installing .NET 9.0 SDK..."
36+
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --channel 9.0 --install-dir .dotnet --no-path --skip-non-versioned-files
37+
38+
# Install .NET 10.0 SDK (preview quality)
39+
echo "Installing .NET 10.0 SDK (preview)..."
40+
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --channel 10.0 --quality preview --install-dir .dotnet --no-path --skip-non-versioned-files
41+
fi
42+
43+
# Install SDK from global.json
2544
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --jsonfile ./global.json --install-dir .dotnet --no-path
45+
46+
# Install specific SDK version if CAKE_INSTALL_SDK_VERSION is set
47+
if [ "$CAKE_INSTALL_SDK_VERSION" ]; then
48+
echo "Installing .NET $CAKE_INSTALL_SDK_VERSION SDK..."
49+
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --version $CAKE_INSTALL_SDK_VERSION --install-dir .dotnet --no-path
50+
fi
51+
2652
export PATH="$SCRIPT_DIR/.dotnet":$PATH
2753
export DOTNET_ROOT="$SCRIPT_DIR/.dotnet"
2854

55+
dotnet --info
56+
2957
###########################################################################
3058
# INSTALL CAKE
3159
###########################################################################

0 commit comments

Comments
 (0)