Skip to content

Commit 0969263

Browse files
Update build-and-sign-sequential.yml
1 parent d4964db commit 0969263

1 file changed

Lines changed: 43 additions & 69 deletions

File tree

.github/workflows/build-and-sign-sequential.yml

Lines changed: 43 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and Sign Virtual Drivers - Sequential
1+
name: Build and Sign Virtual Drivers - Sequential (Fixed)
22

33
on:
44
push:
@@ -13,7 +13,7 @@ env:
1313
BUILD_CONFIGURATION: Release
1414

1515
jobs:
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

Comments
 (0)