diff --git a/images/win/scripts/Installers/Install-GDK.ps1 b/images/win/scripts/Installers/Install-GDK.ps1 new file mode 100644 index 00000000..6283167d --- /dev/null +++ b/images/win/scripts/Installers/Install-GDK.ps1 @@ -0,0 +1,19 @@ +################################################################################ +## File: Install-GDK.ps1 +## Desc: Install Microsoft Game Developement Kit +################################################################################ + +# Preparation +$tempFolder = Join-Path $env:Tmp "GDK" + +# Fetching Microsoft GDK release version +$GDKReleaseVersion = (Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/GDK/releases/latest").tag_name + +# Cloning GDK repo and checking out to release +git clone --depth 1 --branch $GDKReleaseVersion "https://github.com/microsoft/GDK.git" $tempFolder + +# Installing GDK +$GDKInstaller = Join-Path $tempFolder "pgdk.exe" +Install-Binary -FilePath $GDKInstaller -ArgumentList ("/quiet", "/norestart") + +Invoke-PesterTests -Testfile "Tools" -TestName "Microsoft GDK" \ No newline at end of file diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 index 51e8e770..4bcf722b 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -324,6 +324,13 @@ function Get-PipxVersion { return "Pipx $pipxVersion" } +function Get-GDKVersion { + $regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" + $installedApplications = Get-ItemProperty -Path $regKey + $GDKRelease = $installedApplications | Where-Object DisplayName -match "Microsoft Game Development Kit" + return "$($GDKRelease.DisplayName) $($GDKRelease.DisplayVersion)" +} + function Build-PackageManagementEnvironmentTable { $envVariables = @( @{ diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index c2ee6301..167de2ce 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -123,6 +123,11 @@ $toolsList = @( (Get-ZstdVersion), (Get-YAMLLintVersion) ) +if (Test-IsWin19) { + $toolsList += @( + (Get-GDKVersion) + ) +} if ((Test-IsWin16) -or (Test-IsWin19)) { $toolsList += @( (Get-NSISVersion), diff --git a/images/win/scripts/Tests/Tools.Tests.ps1 b/images/win/scripts/Tests/Tools.Tests.ps1 index cb72bbd3..8f18ecce 100644 --- a/images/win/scripts/Tests/Tools.Tests.ps1 +++ b/images/win/scripts/Tests/Tools.Tests.ps1 @@ -91,6 +91,12 @@ Describe "Mingw64" { } } +Describe "Microsoft GDK" -Skip:(-not (Test-IsWin19)) { + It "GDK" { + "$($env:GRDKLatest)grdk.ini" | Should -Exist + } +} + Describe "GoogleCloudSDK" -Skip:(Test-IsWin22) { It "" -TestCases @( @{ ToolName = "bq" } diff --git a/images/win/windows2019.json b/images/win/windows2019.json index af3c1ea9..1bc66248 100644 --- a/images/win/windows2019.json +++ b/images/win/windows2019.json @@ -252,6 +252,7 @@ "{{ template_dir }}/scripts/Installers/Install-GoogleCloudSDK.ps1", "{{ template_dir }}/scripts/Installers/Install-CodeQLBundle.ps1", "{{ template_dir }}/scripts/Installers/Install-BizTalkBuildComponent.ps1", + "{{ template_dir }}/scripts/Installers/Install-GDK.ps1", "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1", "{{ template_dir }}/scripts/Installers/Configure-GDIProcessHandleQuota.ps1",