diff options
| author | Matt <[email protected]> | 2024-06-24 11:14:36 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-06-24 11:14:36 -0700 |
| commit | e59949f40da211f378e8f76bee383506d9b97243 (patch) | |
| tree | e87800c55626a907a89eb6233f387fc4727c13b5 /.github/scripts | |
| parent | dbfbeada993778d718d8ac829d8f496ee015d5e2 (diff) | |
CI Pipelines build with WDK Nuget Packages (#1179)
Integrate nuget into the workflow pipelines
Diffstat (limited to '.github/scripts')
| -rw-r--r-- | .github/scripts/Install-Vsix.ps1 | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/.github/scripts/Install-Vsix.ps1 b/.github/scripts/Install-Vsix.ps1 new file mode 100644 index 00000000..24c7ef45 --- /dev/null +++ b/.github/scripts/Install-Vsix.ps1 @@ -0,0 +1,68 @@ +<#
+
+.SYNOPSIS
+Checks WDK vsix version and downloads and installs as necessary.
+
+#>
+
+[CmdletBinding()]
+param(
+ [bool]$optimize = $false
+)
+
+$root = Get-Location
+
+# launch developer powershell (if necessary)
+if (-not $env:VSCMD_VER) {
+ Import-Module (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\2022\*\Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
+ Enter-VsDevShell -VsInstallPath (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\2022\*")
+ cd $root
+}
+
+# source environment variables
+. .\Env-Vars.ps1
+
+$version = $env:SAMPLES_VSIX_VERSION
+$uri = $env:SAMPLES_VSIX_URI
+
+function PrintWdkVsix {
+ $installed = ls "${env:ProgramData}\Microsoft\VisualStudio\Packages\Microsoft.Windows.DriverKit,version=*" | Select -ExpandProperty Name
+ "WDK Vsix Version: $installed"
+}
+
+function TestWdkVsix {
+ Test-Path "${env:ProgramData}\Microsoft\VisualStudio\Packages\Microsoft.Windows.DriverKit,version=$version"
+}
+
+if ($optimize) {
+ "---> Downloading vsix and configuring build environment..."
+ Invoke-WebRequest -Uri "$uri" -OutFile wdk.zip
+ Expand-Archive ".\wdk.zip" .\
+ cp ".\`$MSBuild\*" (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\2022\*\MSBuild\") -Recurse -Force
+ "<--- Finished"
+}
+else {
+ "Getting installed WDK vsix..."
+ PrintWdkVsix
+ "Checking the WDK.vsix version installed..."
+ if (-not (TestWdkVsix)) {
+ "The correct WDK vsix is not installed."
+ "Will attempt to download and install now..."
+ Invoke-WebRequest -Uri "$uri" -OutFile wdk.vsix
+ "Finished downloading."
+ "Starting install process. This will take some time to complete..."
+ Start-Process vsixinstaller -ArgumentList "/f /q /sp .\wdk.vsix" -wait
+ "The install process has finished."
+ "Checking the WDK.vsix version installed..."
+ if (TestWdkVsix) {
+ PrintWdkVsix
+ "The WDK vsix version is OK"
+ }
+ else {
+ "The WDK vsix install FAILED"
+ Write-Host "`u{274C} wdk vsix install had an issue"
+ Write-Error "the wdk vsix cannot be installed at this time"
+ exit 1
+ }
+ }
+}
\ No newline at end of file |
