1- name : Build and Sign Virtual Drivers - Sequential
1+ name : Build and Sign Virtual Drivers - Sequential (Fixed)
22
33on :
44 push :
1313 BUILD_CONFIGURATION : Release
1414
1515jobs :
16- # Job 1: Build ARM64 components first
16+ # Job 1: Build ARM64 VDD and Control Panel only (skip VAD due to WDK ARM64 issues)
1717 build-arm64 :
1818 runs-on : windows-latest
1919
@@ -74,31 +74,11 @@ jobs:
7474 exit 1
7575 }
7676
77- # Build Virtual Audio Driver for ARM64
78- - name : Build Virtual Audio Driver (ARM64)
77+ # Note: Skipping ARM64 VAD build due to WDK toolchain limitations
78+ - name : ARM64 VAD Build Notice
7979 run : |
80- Write-Output "Building Virtual Audio Driver for ARM64..."
81- $vadSln = "Virtual-Audio-Driver (Latest Stable)/VirtualAudioDriver.sln"
82- if (Test-Path $vadSln) {
83- Write-Output "Found VAD solution: $vadSln"
84- Write-Output "Running MSBuild for ARM64..."
85- msbuild $vadSln /p:Configuration=$env:BUILD_CONFIGURATION /p:Platform=ARM64 /verbosity:minimal
86- if ($LASTEXITCODE -eq 0) {
87- Write-Output "✅ VAD build completed successfully for ARM64"
88- } else {
89- Write-Output "❌ VAD build failed with exit code: $LASTEXITCODE"
90- exit 1
91- }
92-
93- # List build outputs
94- Write-Output "Searching for VAD build outputs..."
95- Get-ChildItem -Path "Virtual-Audio-Driver (Latest Stable)" -Recurse -Include "*.sys", "*.inf", "*.cat", "*.dll" -ErrorAction SilentlyContinue | ForEach-Object {
96- Write-Output " - $($_.FullName)"
97- }
98- } else {
99- Write-Output "❌ VAD solution file not found at: $vadSln"
100- exit 1
101- }
80+ Write-Output "ℹ️ Skipping ARM64 VAD build due to Windows Driver Kit ARM64 cross-compilation issues"
81+ Write-Output "ℹ️ VAD will be built for x64 only in the next job"
10282
10383 # Build Control Panel (platform-independent, only build once)
10484 - name : Checkout Control Panel Repository
@@ -138,7 +118,7 @@ jobs:
138118 exit 1
139119 }
140120
141- # Package ARM64 components
121+ # Package ARM64 components (VDD + Control Panel only)
142122 - name : Package ARM64 components
143123 run : |
144124 Write-Output "Creating ARM64 package..."
@@ -147,10 +127,8 @@ jobs:
147127
148128 # Create component directories
149129 $vddDir = "$packageDir\VDD"
150- $vadDir = "$packageDir\VAD"
151130 $controlDir = "$packageDir\ControlPanel"
152131 New-Item -ItemType Directory -Path $vddDir -Force
153- New-Item -ItemType Directory -Path $vadDir -Force
154132 New-Item -ItemType Directory -Path $controlDir -Force
155133
156134 # Copy VDD ARM64 files
@@ -160,13 +138,6 @@ jobs:
160138 Write-Output "✅ Copied VDD ARM64 files"
161139 }
162140
163- # Copy VAD ARM64 files
164- $vadFiles = Get-ChildItem -Path "Virtual-Audio-Driver (Latest Stable)" -Recurse -Include "*.sys", "*.inf", "*.cat", "*.dll" -ErrorAction SilentlyContinue
165- foreach ($file in $vadFiles) {
166- Copy-Item $file.FullName -Destination $vadDir -Force
167- }
168- Write-Output "✅ Copied VAD ARM64 files"
169-
170141 # Copy Control Panel files
171142 if (Test-Path "control-panel-publish") {
172143 Copy-Item "control-panel-publish\*" -Destination $controlDir -Recurse -Force
@@ -183,7 +154,7 @@ jobs:
183154 path : ${{ env.ARM64_PACKAGE_DIR }}
184155 retention-days : 1
185156
186- # Job 2: Build x64 components (depends on ARM64 completion)
157+ # Job 2: Build x64 components (VDD + VAD) - depends on ARM64 completion
187158 build-x64 :
188159 needs : build-arm64
189160 runs-on : windows-latest
@@ -240,7 +211,7 @@ jobs:
240211 exit 1
241212 }
242213
243- # Build Virtual Audio Driver for x64
214+ # Build Virtual Audio Driver for x64 (stable platform)
244215 - name : Build Virtual Audio Driver (x64)
245216 run : |
246217 Write-Output "Building Virtual Audio Driver for x64..."
@@ -266,7 +237,7 @@ jobs:
266237 exit 1
267238 }
268239
269- # Package x64 components
240+ # Package x64 components (VDD + VAD)
270241 - name : Package x64 components
271242 run : |
272243 Write-Output "Creating x64 package..."
@@ -339,31 +310,27 @@ jobs:
339310 New-Item -ItemType Directory -Path $arm64Dir -Force
340311 New-Item -ItemType Directory -Path $x64Dir -Force
341312
342- # Create component subdirectories for each platform
343- foreach ($platform in @("ARM64", "x64")) {
344- $platformDir = "$unifiedDir\$platform"
345- New-Item -ItemType Directory -Path "$platformDir\VDD " -Force
346- New-Item -ItemType Directory -Path "$platformDir\VAD" -Force
347- if ($platform -eq "ARM64") {
348- New-Item -ItemType Directory -Path "$platformDir\ControlPanel " -Force
349- }
350- }
313+ # Create component subdirectories
314+ # ARM64: VDD + Control Panel only
315+ New-Item -ItemType Directory -Path "$arm64Dir\VDD" -Force
316+ New-Item -ItemType Directory -Path "$arm64Dir\ControlPanel " -Force
317+
318+ # x64: VDD + VAD + Control Panel
319+ New-Item -ItemType Directory -Path "$x64Dir\VDD " -Force
320+ New-Item -ItemType Directory -Path "$x64Dir\VAD" -Force
321+ New-Item -ItemType Directory -Path "$x64Dir\ControlPanel" -Force
351322
352- # Copy ARM64 components
323+ # Copy ARM64 components (VDD + Control Panel)
353324 if (Test-Path "arm64-components\VDD") {
354325 Copy-Item "arm64-components\VDD\*" -Destination "$arm64Dir\VDD" -Force
355326 Write-Output "✅ Copied ARM64 VDD files"
356327 }
357- if (Test-Path "arm64-components\VAD") {
358- Copy-Item "arm64-components\VAD\*" -Destination "$arm64Dir\VAD" -Force
359- Write-Output "✅ Copied ARM64 VAD files"
360- }
361328 if (Test-Path "arm64-components\ControlPanel") {
362329 Copy-Item "arm64-components\ControlPanel\*" -Destination "$arm64Dir\ControlPanel" -Recurse -Force
363330 Write-Output "✅ Copied Control Panel files to ARM64 package"
364331 }
365332
366- # Copy x64 components
333+ # Copy x64 components (VDD + VAD)
367334 if (Test-Path "x64-components\VDD") {
368335 Copy-Item "x64-components\VDD\*" -Destination "$x64Dir\VDD" -Force
369336 Write-Output "✅ Copied x64 VDD files"
@@ -392,7 +359,7 @@ jobs:
392359 }
393360
394361 # Create ZIP file
395- $zipFile = "unified-driver-package-all-platforms .zip"
362+ $zipFile = "unified-driver-package-mixed-platform .zip"
396363 Write-Output ""
397364 Write-Output "Creating unified ZIP file: $zipFile"
398365 Compress-Archive -Path $unifiedDir -DestinationPath $zipFile -Force
@@ -411,7 +378,7 @@ jobs:
411378 id : upload_unified_package
412379 uses : actions/upload-artifact@v4
413380 with :
414- name : Unified-Driver-Package-All-Platforms -${{ env.BUILD_CONFIGURATION }}
381+ name : Unified-Driver-Package-Mixed-Platform -${{ env.BUILD_CONFIGURATION }}
415382 path : ${{ env.UNIFIED_PACKAGE_PATH }}
416383
417384 # Generate release tag
@@ -438,47 +405,54 @@ jobs:
438405 parameters : |
439406 Version: ${{ toJSON(env.BUILD_CONFIGURATION) }}
440407 Release_Tag: "${{ env.RELEASE_TAG }}"
441- Platforms: "ARM64,x64"
408+ Platforms: "ARM64-VDD-only ,x64-VDD-VAD "
442409 continue-on-error : true
443410
444411 # Upload signed unified package
445412 - name : Upload signed unified package
446413 if : steps.signpath_unified_request.outcome == 'success'
447414 uses : actions/upload-artifact@v4
448415 with :
449- name : Signed-Unified-Package-All-Platforms -${{ env.BUILD_CONFIGURATION }}
416+ name : Signed-Unified-Package-Mixed-Platform -${{ env.BUILD_CONFIGURATION }}
450417 path : ' ${{ vars.SIGNPATH_OUTPUT_DIR }}\*'
451418 continue-on-error : true
452419
453420 # Build Summary
454421 - name : Build and SignPath Summary
455422 if : always()
456423 run : |
457- Write-Output "=== Virtual Drivers Sequential Build & Sign Summary ==="
424+ Write-Output "=== Virtual Drivers Sequential Build & Sign Summary (Fixed) ==="
458425 Write-Output "Configuration: $env:BUILD_CONFIGURATION"
459- Write-Output "Platforms: ARM64, x64"
460426 Write-Output "Release Tag: ${{ env.RELEASE_TAG }}"
461427 Write-Output "Commit: ${{ github.sha }}"
462428 Write-Output "Branch/Tag: ${{ github.ref }}"
463429 Write-Output ""
464- Write-Output "Build Strategy: Sequential (ARM64 → x64 → Unified Signing)"
430+ Write-Output "Build Strategy: Sequential with Mixed Platform Support"
431+ Write-Output ""
432+ Write-Output "Platform-Specific Components Built:"
433+ Write-Output "ARM64: VDD + Control Panel (VAD skipped due to WDK limitations)"
434+ Write-Output "x64: VDD + VAD + Control Panel"
465435 Write-Output ""
466436 Write-Output "This workflow successfully:"
467- Write-Output "✅ Built ARM64 drivers first ( VDD + VAD + Control Panel) "
437+ Write-Output "✅ Built ARM64 VDD and Control Panel first "
468438 Write-Output "✅ Built x64 drivers after ARM64 completion (VDD + VAD)"
469- Write-Output "✅ Created unified package containing all platforms and components"
439+ Write-Output "✅ Created unified package containing all working components"
470440 Write-Output "✅ Submitted single unified package to SignPath for code signing"
471441 Write-Output "✅ Generated automatic release tags for version tracking"
472442 Write-Output ""
473- Write-Output "Benefits of Sequential Approach:"
474- Write-Output "• Resource efficiency - no parallel builds"
475- Write-Output "• Better error isolation - ARM64 failure stops x64 build"
443+ Write-Output "Benefits of This Approach:"
444+ Write-Output "• Resource efficiency - sequential builds prevent resource conflicts "
445+ Write-Output "• Error isolation - ARM64 failure stops x64 build"
476446 Write-Output "• Single SignPath submission for all platforms"
477- Write-Output "• Consolidated artifact management"
447+ Write-Output "• Works around WDK ARM64 cross-compilation limitations"
448+ Write-Output "• VAD still available for primary x64 platform"
478449 Write-Output ""
479450 Write-Output "SignPath Integration Status:"
480451 if ('${{ steps.signpath_unified_request.outcome }}' -eq 'success') {
481- Write-Output "✅ Unified package (all platforms) submitted and signed successfully"
452+ Write-Output "✅ Unified package (mixed platforms) submitted and signed successfully"
482453 } else {
483454 Write-Output "❌ Unified package signing failed or skipped"
484- }
455+ }
456+ Write-Output ""
457+ Write-Output "⚠️ Note: ARM64 VAD skipped due to Windows Driver Kit cross-compilation issues"
458+ Write-Output " This is a known limitation with WDK 11 ARM64 toolchain on GitHub Actions"
0 commit comments