99 build-and-test :
1010 name : Build & Test ${{ matrix.package }}
1111 runs-on : ${{ matrix.os }}
12- container : ${{ matrix.container }}
1312 strategy :
1413 fail-fast : false
1514 matrix :
@@ -19,53 +18,39 @@ jobs:
1918 arch : x64
2019 gpu : cuda
2120 package : linux-x64-cuda
22- container : nvidia/cuda:12.6.2-devel-ubuntu22.04
2321 - os : ubuntu-22.04
2422 arch : x64
2523 gpu : vulkan
2624 package : linux-x64-vulkan
27- container : ' '
2825
2926 # Linux ARM64 GPU
3027 - os : ubuntu-22.04-arm
3128 arch : arm64
3229 gpu : cuda
3330 package : linux-arm64-cuda
34- container : nvidia/cuda:12.6.2-devel-ubuntu22.04
3531 - os : ubuntu-22.04-arm
3632 arch : arm64
3733 gpu : vulkan
3834 package : linux-arm64-vulkan
39- container : ' '
4035
4136 # Windows x64 GPU
4237 - os : windows-2022
4338 arch : x64
4439 gpu : cuda
4540 package : win32-x64-cuda
46- container : ' '
4741 - os : windows-2022
4842 arch : x64
4943 gpu : vulkan
5044 package : win32-x64-vulkan
51- container : ' '
5245
5346 # Windows ARM64 Vulkan (cross-compiled)
5447 - os : windows-2022
5548 arch : arm64
5649 gpu : vulkan
5750 package : win32-arm64-vulkan
5851 cross_compile : true
59- container : ' '
6052
6153 steps :
62- # CUDA container has old git - upgrade before checkout
63- - name : Upgrade git (CUDA container)
64- if : matrix.gpu == 'cuda' && runner.os == 'Linux'
65- run : |
66- apt-get update
67- apt-get install -y git
68-
6954 - name : Checkout code
7055 uses : actions/checkout@v4
7156 with :
@@ -77,21 +62,20 @@ jobs:
7762 node-version : 24
7863 registry-url : ' https://registry.npmjs.org'
7964
80- # Linux build tools (no sudo in containers, sudo for regular runners)
81- - name : Install build tools (Linux - container)
82- if : runner.os == 'Linux' && matrix.container != ''
83- run : |
84- apt-get update
85- apt-get install -y build-essential cmake ninja-build
86-
87- - name : Install build tools (Linux - no container)
88- if : runner.os == 'Linux' && matrix.container == ''
65+ # Linux build tools
66+ - name : Install build tools (Linux)
67+ if : runner.os == 'Linux'
8968 run : |
9069 sudo apt-get update
9170 sudo apt-get install -y build-essential cmake
9271
93- # CUDA (skip on Linux - using nvidia/cuda container which has CUDA)
94- # Container already has CUDA toolkit and driver stubs
72+ # CUDA
73+ - name : Provision CUDA toolkit (Linux)
74+ if : matrix.gpu == 'cuda' && runner.os == 'Linux'
75+ uses : ./.github/actions/provision-cuda
76+ with :
77+ version : ' 12.6.2'
78+ arch : ${{ matrix.arch }}
9579
9680 - name : Provision CUDA toolkit (Windows)
9781 if : matrix.gpu == 'cuda' && runner.os == 'Windows'
@@ -208,17 +192,23 @@ jobs:
208192 if ($env:VULKAN_SDK) {
209193 $env:PATH = "$env:VULKAN_SDK\Bin;$env:PATH"
210194 Write-Host "Added Vulkan SDK Bin to PATH: $env:VULKAN_SDK\Bin"
211- }
212-
213- # Add CUDA runtime to PATH if available
214- if ($env:CUDA_PATH) {
215- $env:PATH = "$env:CUDA_PATH\bin;$env:PATH"
216- Write-Host "Added CUDA bin to PATH: $env:CUDA_PATH\bin"
195+ Write-Host "Vulkan SDK Bin contents:"
196+ Get-ChildItem "$env:VULKAN_SDK\Bin" -Filter "*.dll" | Select-Object Name
217197 }
218198
219199 Write-Host "Package bin: $pkgBin"
200+ Write-Host "Package bin contents:"
201+ Get-ChildItem $pkgBin
220202 Write-Host "VULKAN_SDK: $env:VULKAN_SDK"
221- Write-Host "CUDA_PATH: $env:CUDA_PATH"
203+
204+ # Check if vulkan-1.dll exists
205+ $vulkanDll = "$env:VULKAN_SDK\Bin\vulkan-1.dll"
206+ if (Test-Path $vulkanDll) {
207+ Write-Host "vulkan-1.dll found at: $vulkanDll"
208+ } else {
209+ Write-Host "WARNING: vulkan-1.dll NOT found at: $vulkanDll"
210+ }
211+
222212 node -e "
223213 const { loadBinary } = require('./lib');
224214 const addon = loadBinary();
0 commit comments