Updated runner
Some checks failed
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Has been cancelled
CI / Windows Release Package (push) Has been cancelled

This commit is contained in:
2026-05-06 12:11:51 +10:00
parent a58f8aaf43
commit 99e8fb4681
2 changed files with 98 additions and 6 deletions

View File

@@ -12,15 +12,55 @@ on:
jobs: jobs:
native-windows: native-windows:
name: Native Windows Build And Tests name: Native Windows Build And Tests
runs-on: windows-latest runs-on: windows-2022
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Resolve Native Third Party Dependencies
shell: powershell
run: |
$gpudirectDir = "${{ vars.GPUDIRECT_DIR }}"
if ([string]::IsNullOrWhiteSpace($gpudirectDir)) {
$gpudirectDir = $env:GPUDIRECT_DIR
}
if ([string]::IsNullOrWhiteSpace($gpudirectDir)) {
$gpudirectDir = Join-Path $PWD "3rdParty\Blackmagic DeckLink SDK 16.0\Win\Samples\NVIDIA_GPUDirect"
}
$slangRoot = "${{ vars.SLANG_ROOT }}"
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
$slangRoot = $env:SLANG_ROOT
}
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
$slangRoot = Join-Path $PWD "3rdParty\slang-2026.8-windows-x86_64"
}
$requiredFiles = @(
(Join-Path $gpudirectDir "include\DVPAPI.h"),
(Join-Path $gpudirectDir "lib\x64\dvp.lib"),
(Join-Path $gpudirectDir "bin\x64\dvp.dll"),
(Join-Path $slangRoot "bin\slangc.exe"),
(Join-Path $slangRoot "bin\slang-compiler.dll"),
(Join-Path $slangRoot "bin\slang-glslang.dll"),
(Join-Path $slangRoot "LICENSE")
)
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
if ($missingFiles.Count -gt 0) {
Write-Error "Missing native third-party dependencies. Set Gitea repository variables GPUDIRECT_DIR and SLANG_ROOT, or pre-populate the repo-local 3rdParty folder on the Windows runner. Missing: $($missingFiles -join ', ')"
exit 1
}
"GPUDIRECT_DIR=$gpudirectDir" | Out-File -FilePath $env:GITHUB_ENV -Append
"SLANG_ROOT=$slangRoot" | Out-File -FilePath $env:GITHUB_ENV -Append
Write-Host "Using GPUDIRECT_DIR=$gpudirectDir"
Write-Host "Using SLANG_ROOT=$slangRoot"
- name: Configure Debug - name: Configure Debug
shell: powershell shell: powershell
run: cmake --preset vs2022-x64-debug run: cmake --preset vs2022-x64-debug -DGPUDIRECT_DIR="$env:GPUDIRECT_DIR" -DSLANG_ROOT="$env:SLANG_ROOT"
- name: Build Debug - name: Build Debug
shell: powershell shell: powershell
@@ -48,7 +88,7 @@ jobs:
package-windows: package-windows:
name: Windows Release Package name: Windows Release Package
runs-on: windows-latest runs-on: windows-2022
needs: needs:
- native-windows - native-windows
- ui-ubuntu - ui-ubuntu
@@ -57,6 +97,46 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Resolve Native Third Party Dependencies
shell: powershell
run: |
$gpudirectDir = "${{ vars.GPUDIRECT_DIR }}"
if ([string]::IsNullOrWhiteSpace($gpudirectDir)) {
$gpudirectDir = $env:GPUDIRECT_DIR
}
if ([string]::IsNullOrWhiteSpace($gpudirectDir)) {
$gpudirectDir = Join-Path $PWD "3rdParty\Blackmagic DeckLink SDK 16.0\Win\Samples\NVIDIA_GPUDirect"
}
$slangRoot = "${{ vars.SLANG_ROOT }}"
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
$slangRoot = $env:SLANG_ROOT
}
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
$slangRoot = Join-Path $PWD "3rdParty\slang-2026.8-windows-x86_64"
}
$requiredFiles = @(
(Join-Path $gpudirectDir "include\DVPAPI.h"),
(Join-Path $gpudirectDir "lib\x64\dvp.lib"),
(Join-Path $gpudirectDir "bin\x64\dvp.dll"),
(Join-Path $slangRoot "bin\slangc.exe"),
(Join-Path $slangRoot "bin\slang-compiler.dll"),
(Join-Path $slangRoot "bin\slang-glslang.dll"),
(Join-Path $slangRoot "LICENSE")
)
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
if ($missingFiles.Count -gt 0) {
Write-Error "Missing native third-party dependencies. Set Gitea repository variables GPUDIRECT_DIR and SLANG_ROOT, or pre-populate the repo-local 3rdParty folder on the Windows runner. Missing: $($missingFiles -join ', ')"
exit 1
}
"GPUDIRECT_DIR=$gpudirectDir" | Out-File -FilePath $env:GITHUB_ENV -Append
"SLANG_ROOT=$slangRoot" | Out-File -FilePath $env:GITHUB_ENV -Append
Write-Host "Using GPUDIRECT_DIR=$gpudirectDir"
Write-Host "Using SLANG_ROOT=$slangRoot"
- name: Build UI - name: Build UI
shell: powershell shell: powershell
working-directory: ui working-directory: ui
@@ -66,7 +146,7 @@ jobs:
- name: Configure Release - name: Configure Release
shell: powershell shell: powershell
run: cmake --preset vs2022-x64-release run: cmake --preset vs2022-x64-release -DGPUDIRECT_DIR="$env:GPUDIRECT_DIR" -DSLANG_ROOT="$env:SLANG_ROOT"
- name: Build Release - name: Build Release
shell: powershell shell: powershell

View File

@@ -224,10 +224,22 @@ Only `runtime/templates/` and `runtime/README.md` are tracked.
The Gitea workflow expects two act runners: The Gitea workflow expects two act runners:
- `windows-latest`: builds the native app and runs native tests. - `windows-2022`: builds the native app and runs native tests.
- `ubuntu-latest`: installs UI dependencies and runs the Vite build. - `ubuntu-latest`: installs UI dependencies and runs the Vite build.
If your Windows runner stores the Blackmagic SDK outside the repo, configure `GPUDIRECT_DIR` in the runner environment or adjust the workflow configure command to pass `-DGPUDIRECT_DIR=...`. The Windows jobs validate native third-party dependencies before configuring CMake. Because `3rdParty/` is ignored, configure these paths on the runner or in Gitea repository variables:
- `GPUDIRECT_DIR`: path to `Blackmagic DeckLink SDK 16.0/Win/Samples/NVIDIA_GPUDirect`.
- `SLANG_ROOT`: path to the Slang binary release folder containing `bin/slangc.exe`.
Example runner paths:
```text
D:\SDKs\Blackmagic DeckLink SDK 16.0\Win\Samples\NVIDIA_GPUDirect
D:\SDKs\slang-2026.8-windows-x86_64
```
If neither variable is set, the workflow falls back to the repo-local defaults under `3rdParty/`.
## Still Todo ## Still Todo