Updated runner
This commit is contained in:
@@ -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
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user