mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-15 06:19:21 +00:00
Add install of dotnet tools (#4820)
* Add install of dotnet tools - Add new section under dotnet. - Add installer for dotnet tools. - Add tests for dotnet tools. - Add dotnet tools to software report. * Fixes from code review * Add test and version check to dotnet tool json - Rework installer to use tool name. - Rework test to call tool test. - Rework software report to use tool specific command to get version. * Fixes from code review * Fix test for nbgv * Fix linux installer * Fix name for test context. * Update images/linux/scripts/installers/dotnetcore-sdk.sh Co-authored-by: PJ <me@panekj.dev> * Update images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 Co-authored-by: PJ <me@panekj.dev> * Update images/win/scripts/Tests/DotnetSDK.Tests.ps1 Co-authored-by: PJ <me@panekj.dev> * Aligning PS1 between win and linux * Remove out * Add Nuget.org as feed source for installing tool * Fix tests * Fix getting tool version * Change from code review * Update images/win/toolsets/toolset-2022.json Co-authored-by: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> * Update images/win/toolsets/toolset-2019.json Co-authored-by: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> * Update images/win/toolsets/toolset-2016.json Co-authored-by: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> * Changes from code review * Change from code revision * Fix tests * dotnet tool is now installed to a tool path * Move dotnet tools install - Need to install the dotnet tools AFTER post install steps otherwise dotnet is not in the path. * Fxi typo in path * Add path to software report for dotnet tools * Remove new line (from code review) * Add progress output message to dotnet tools install * Change install path for tool * New updating PATH with dotnet tools location * Remove duplicated assigment * Remove output message and add back Out-null Co-authored-by: PJ <me@panekj.dev> Co-authored-by: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com>
This commit is contained in:
@@ -331,6 +331,20 @@ function Get-DotNetCoreSdkVersions {
|
||||
return $dotNetCoreSdkVersion
|
||||
}
|
||||
|
||||
function Get-DotnetTools {
|
||||
$env:PATH = "/etc/skel/.dotnet/tools:$($env:PATH)"
|
||||
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
|
||||
$toolsList = @()
|
||||
|
||||
ForEach ($dotnetTool in $dotnetTools) {
|
||||
$toolsList += $dotnetTool.name + " " + (Invoke-Expression $dotnetTool.getversion)
|
||||
}
|
||||
|
||||
return $toolsList
|
||||
}
|
||||
|
||||
function Get-CachedDockerImages {
|
||||
$toolsetJson = Get-ToolsetContent
|
||||
$images = $toolsetJson.docker.images
|
||||
|
||||
@@ -230,6 +230,10 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-DotNetCoreSdkVersions)
|
||||
)
|
||||
|
||||
$markdown += New-MDHeader ".NET tools" -Level 3
|
||||
$tools = Get-DotnetTools
|
||||
$markdown += New-MDList -Lines $tools -Style Unordered
|
||||
|
||||
$markdown += New-MDHeader "Databases" -Level 3
|
||||
$markdown += New-MDList -Style Unordered -Lines (@(
|
||||
(Get-PostgreSqlVersion),
|
||||
|
||||
@@ -11,6 +11,7 @@ source $HELPER_SCRIPTS/os.sh
|
||||
# Ubuntu 20 doesn't support EOL versions
|
||||
LATEST_DOTNET_PACKAGES=$(get_toolset_value '.dotnet.aptPackages[]')
|
||||
DOTNET_VERSIONS=$(get_toolset_value '.dotnet.versions[]')
|
||||
DOTNET_TOOLS=$(get_toolset_value '.dotnet.tools[].name')
|
||||
|
||||
# Disable telemetry
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
@@ -67,4 +68,10 @@ setEtcEnvironmentVariable DOTNET_NOLOGO 1
|
||||
setEtcEnvironmentVariable DOTNET_MULTILEVEL_LOOKUP 0
|
||||
prependEtcEnvironmentPath '$HOME/.dotnet/tools'
|
||||
|
||||
# install dotnet tools
|
||||
for dotnet_tool in ${DOTNET_TOOLS[@]}; do
|
||||
echo "Installing dotnet tool $dotnet_tool"
|
||||
dotnet tool install $dotnet_tool --tool-path '/etc/skel/.dotnet/tools'
|
||||
done
|
||||
|
||||
invoke_tests "DotnetSDK"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
Describe "Dotnet" {
|
||||
Describe "Dotnet and tools" {
|
||||
|
||||
BeforeAll {
|
||||
$env:PATH = "/etc/skel/.dotnet/tools:$($env:PATH)"
|
||||
$dotnetSDKs = dotnet --list-sdks | ConvertTo-Json
|
||||
$dotnetRuntimes = dotnet --list-runtimes | ConvertTo-Json
|
||||
}
|
||||
@@ -28,4 +29,14 @@ Describe "Dotnet" {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Context "Dotnet tools" {
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
$testCases = $dotnetTools | ForEach-Object { @{ ToolName = $_.name; TestInstance = $_.test }}
|
||||
|
||||
It "<ToolName> is available" -TestCases $testCases {
|
||||
"$TestInstance" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -254,6 +254,9 @@
|
||||
"2.1",
|
||||
"3.1",
|
||||
"5.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
]
|
||||
},
|
||||
"clang": {
|
||||
|
||||
@@ -254,6 +254,9 @@
|
||||
"2.1",
|
||||
"3.1",
|
||||
"5.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
]
|
||||
},
|
||||
"clang": {
|
||||
|
||||
@@ -108,6 +108,16 @@ function InstallAllValidSdks()
|
||||
}
|
||||
}
|
||||
|
||||
function InstallTools()
|
||||
{
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
|
||||
ForEach ($dotnetTool in $dotnetTools)
|
||||
{
|
||||
dotnet tool install $($dotnetTool.name) --tool-path "C:\Users\Default.dotnet\tools" --add-source https://api.nuget.org/v3/index.json | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
function RunPostInstallationSteps()
|
||||
{
|
||||
# Add dotnet to PATH
|
||||
@@ -129,5 +139,6 @@ function RunPostInstallationSteps()
|
||||
|
||||
InstallAllValidSdks
|
||||
RunPostInstallationSteps
|
||||
InstallTools
|
||||
|
||||
Invoke-PesterTests -TestFile "DotnetSDK"
|
||||
@@ -200,6 +200,18 @@ function Get-DotnetSdks {
|
||||
}
|
||||
}
|
||||
|
||||
function Get-DotnetTools {
|
||||
$env:Path += ";C:\Users\Default.dotnet\tools"
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
|
||||
$toolsList = @()
|
||||
|
||||
foreach ($dotnetTool in $dotnetTools) {
|
||||
$toolsList += $dotnetTool.name + " " + (Invoke-Expression $dotnetTool.getversion)
|
||||
}
|
||||
return $toolsList
|
||||
}
|
||||
|
||||
function Get-DotnetRuntimes {
|
||||
$runtimesRawList = dotnet --list-runtimes
|
||||
$runtimesRawList | Group-Object {$_.Split()[0]} | ForEach-Object {
|
||||
|
||||
@@ -261,6 +261,10 @@ $markdown += "``Location $($frameworks.Path)``"
|
||||
$markdown += New-MDNewLine
|
||||
$markdown += New-MDList -Lines $frameworks.Versions -Style Unordered
|
||||
|
||||
$markdown += New-MDHeader ".NET tools" -Level 3
|
||||
$tools = Get-DotnetTools
|
||||
$markdown += New-MDList -Lines $tools -Style Unordered
|
||||
|
||||
# PowerShell Tools
|
||||
$markdown += New-MDHeader "PowerShell Tools" -Level 3
|
||||
$markdown += New-MDList -Lines (Get-PowershellCoreVersion) -Style Unordered
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
$dotnetVersions = (Get-ToolsetContent).dotnet.versions
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
|
||||
Describe "Dotnet SDK" {
|
||||
Describe "Dotnet SDK and tools" {
|
||||
|
||||
Context "Default" {
|
||||
It "Default Dotnet SDK is available" {
|
||||
@@ -21,4 +22,13 @@ Describe "Dotnet SDK" {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Context "Dotnet tools" {
|
||||
$env:Path += ";C:\Users\Default.dotnet\tools"
|
||||
$testCases = $dotnetTools | ForEach-Object { @{ ToolName = $_.name; TestInstance = $_.test }}
|
||||
|
||||
It "<ToolName> is available" -TestCases $testCases {
|
||||
"$TestInstance" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -387,6 +387,9 @@
|
||||
"3.1",
|
||||
"5.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
|
||||
],
|
||||
"warmup": true
|
||||
},
|
||||
"choco": {
|
||||
|
||||
@@ -422,6 +422,9 @@
|
||||
"3.1",
|
||||
"5.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
|
||||
],
|
||||
"warmup": true
|
||||
},
|
||||
"choco": {
|
||||
|
||||
@@ -283,6 +283,9 @@
|
||||
"3.1",
|
||||
"5.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
|
||||
],
|
||||
"warmup": false
|
||||
},
|
||||
"choco": {
|
||||
|
||||
Reference in New Issue
Block a user