mirror of
https://github.com/actions/runner-images.git
synced 2025-12-14 13:17:54 +00:00
[Windows] Add WSL2 to Windows-2025 image (#11242)
This commit is contained in:
@@ -93,11 +93,11 @@ $servicesToDisable = @(
|
|||||||
'wuauserv'
|
'wuauserv'
|
||||||
'DiagTrack'
|
'DiagTrack'
|
||||||
'dmwappushservice'
|
'dmwappushservice'
|
||||||
'PcaSvc'
|
$(if(-not (Test-IsWin25)){'PcaSvc'})
|
||||||
'SysMain'
|
'SysMain'
|
||||||
'gupdate'
|
'gupdate'
|
||||||
'gupdatem'
|
'gupdatem'
|
||||||
'StorSvc'
|
$(if(-not (Test-IsWin25)){'StorSvc'})
|
||||||
) | Get-Service -ErrorAction SilentlyContinue
|
) | Get-Service -ErrorAction SilentlyContinue
|
||||||
Stop-Service $servicesToDisable
|
Stop-Service $servicesToDisable
|
||||||
$servicesToDisable.WaitForStatus('Stopped', "00:01:00")
|
$servicesToDisable.WaitForStatus('Stopped', "00:01:00")
|
||||||
|
|||||||
16
images/windows/scripts/build/Install-WSL2.ps1
Normal file
16
images/windows/scripts/build/Install-WSL2.ps1
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Write-Host "Install WSL2"
|
||||||
|
|
||||||
|
$version = (Get-GithubReleasesByVersion -Repo "microsoft/WSL" -Version "latest").version
|
||||||
|
$downloadUrl = Resolve-GithubReleaseAssetUrl `
|
||||||
|
-Repo "microsoft/WSL" `
|
||||||
|
-Version $version `
|
||||||
|
-UrlMatchPattern "wsl.*.x64.msi"
|
||||||
|
|
||||||
|
Install-Binary -Type MSI `
|
||||||
|
-Url $downloadUrl `
|
||||||
|
-ExpectedSHA256Sum "CD3F2A68A1A5836F6A1CC9965A7F5F54DB267CA221EAA87DF29345AB7957AEC4"
|
||||||
|
|
||||||
|
Write-Host "Performing wsl --install --no-distribution"
|
||||||
|
wsl.exe --install --no-distribution
|
||||||
|
|
||||||
|
Invoke-PesterTests -TestFile "WindowsFeatures" -TestName "WSL2"
|
||||||
@@ -21,6 +21,9 @@ Import-Module (Join-Path $PSScriptRoot "SoftwareReport.VisualStudio.psm1") -Disa
|
|||||||
$softwareReport = [SoftwareReport]::new($(Build-OSInfoSection))
|
$softwareReport = [SoftwareReport]::new($(Build-OSInfoSection))
|
||||||
$optionalFeatures = $softwareReport.Root.AddHeader("Windows features")
|
$optionalFeatures = $softwareReport.Root.AddHeader("Windows features")
|
||||||
$optionalFeatures.AddToolVersion("Windows Subsystem for Linux (WSLv1):", "Enabled")
|
$optionalFeatures.AddToolVersion("Windows Subsystem for Linux (WSLv1):", "Enabled")
|
||||||
|
if (Test-IsWin25) {
|
||||||
|
$optionalFeatures.AddToolVersion("Windows Subsystem for Linux (Default, WSLv2):", $(Get-WSL2Version))
|
||||||
|
}
|
||||||
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
|
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
|
||||||
|
|
||||||
# Language and Runtime
|
# Language and Runtime
|
||||||
|
|||||||
@@ -318,3 +318,7 @@ function Get-ImageMagickVersion {
|
|||||||
function Get-MongoshVersion {
|
function Get-MongoshVersion {
|
||||||
return $(mongosh --version)
|
return $(mongosh --version)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-WSL2Version {
|
||||||
|
return $((Get-AppxPackage -Name "MicrosoftCorporationII.WindowsSubsystemForLinux").version)
|
||||||
|
}
|
||||||
|
|||||||
@@ -82,3 +82,9 @@ Describe "Windows Updates" {
|
|||||||
$State | Should -BeIn $expect
|
$State | Should -BeIn $expect
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Describe "WSL2" {
|
||||||
|
It "WSL status should return zero exit code" {
|
||||||
|
"wsl --status" | Should -ReturnZeroExitCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ build {
|
|||||||
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
|
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
|
||||||
}
|
}
|
||||||
|
|
||||||
provisioner "powershell" {
|
provisioner "powershell" {
|
||||||
elevated_password = "${var.install_password}"
|
elevated_password = "${var.install_password}"
|
||||||
elevated_user = "${var.install_user}"
|
elevated_user = "${var.install_user}"
|
||||||
inline = ["bcdedit.exe /set TESTSIGNING ON"]
|
inline = ["bcdedit.exe /set TESTSIGNING ON"]
|
||||||
@@ -256,6 +256,7 @@ build {
|
|||||||
"${path.root}/../scripts/build/Configure-WindowsDefender.ps1",
|
"${path.root}/../scripts/build/Configure-WindowsDefender.ps1",
|
||||||
"${path.root}/../scripts/build/Configure-PowerShell.ps1",
|
"${path.root}/../scripts/build/Configure-PowerShell.ps1",
|
||||||
"${path.root}/../scripts/build/Install-PowerShellModules.ps1",
|
"${path.root}/../scripts/build/Install-PowerShellModules.ps1",
|
||||||
|
"${path.root}/../scripts/build/Install-WSL2.ps1",
|
||||||
"${path.root}/../scripts/build/Install-WindowsFeatures.ps1",
|
"${path.root}/../scripts/build/Install-WindowsFeatures.ps1",
|
||||||
"${path.root}/../scripts/build/Install-Chocolatey.ps1",
|
"${path.root}/../scripts/build/Install-Chocolatey.ps1",
|
||||||
"${path.root}/../scripts/build/Configure-BaseImage.ps1",
|
"${path.root}/../scripts/build/Configure-BaseImage.ps1",
|
||||||
|
|||||||
Reference in New Issue
Block a user