CI/CD updates
This commit is contained in:
@@ -18,8 +18,30 @@ jobs:
|
|||||||
runs-on: windows-2022
|
runs-on: windows-2022
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Manual Checkout With LFS Submodules
|
||||||
uses: actions/checkout@v4
|
shell: powershell
|
||||||
|
env:
|
||||||
|
GITEA_PAT: ${{ secrets.TOKEN }}
|
||||||
|
run: |
|
||||||
|
$repoUrl = "https://aiden:${env:GITEA_PAT}@git.f-40.com/aiden/video-shader.git"
|
||||||
|
$submoduleUrl = "https://aiden:${env:GITEA_PAT}@git.f-40.com/aiden/video-io-3rdParty.git"
|
||||||
|
|
||||||
|
git init .
|
||||||
|
git lfs install --local
|
||||||
|
git remote add origin "$repoUrl"
|
||||||
|
git fetch --depth=1 origin "${{ gitea.ref }}"
|
||||||
|
git checkout FETCH_HEAD
|
||||||
|
|
||||||
|
git lfs pull origin "${{ gitea.ref }}"
|
||||||
|
git submodule sync --recursive
|
||||||
|
git config submodule.video-io-3rdParty.url "$submoduleUrl"
|
||||||
|
git submodule update --init --recursive --depth=1
|
||||||
|
git -C video-io-3rdParty lfs pull
|
||||||
|
|
||||||
|
Write-Host "Parent LFS files:"
|
||||||
|
git lfs ls-files
|
||||||
|
Write-Host "Submodule LFS files:"
|
||||||
|
git -C video-io-3rdParty lfs ls-files
|
||||||
|
|
||||||
- name: Verify Visual Studio ATL
|
- name: Verify Visual Studio ATL
|
||||||
shell: powershell
|
shell: powershell
|
||||||
@@ -34,29 +56,73 @@ jobs:
|
|||||||
- name: Configure Debug
|
- name: Configure Debug
|
||||||
shell: powershell
|
shell: powershell
|
||||||
run: |
|
run: |
|
||||||
|
$thirdPartyRoot = "${{ vars.THIRD_PARTY_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = $env:THIRD_PARTY_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = Join-Path $PWD "video-io-3rdParty"
|
||||||
|
}
|
||||||
|
if (-not (Test-Path -LiteralPath $thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = Join-Path $PWD "3rdParty"
|
||||||
|
}
|
||||||
|
|
||||||
$slangRoot = "${{ vars.SLANG_ROOT }}"
|
$slangRoot = "${{ vars.SLANG_ROOT }}"
|
||||||
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
||||||
$slangRoot = $env:SLANG_ROOT
|
$slangRoot = $env:SLANG_ROOT
|
||||||
}
|
}
|
||||||
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
||||||
$slangRoot = Join-Path $PWD "3rdParty\slang-2026.8-windows-x86_64"
|
$slangRoot = Join-Path $thirdPartyRoot "slang-2026.8-windows-x86_64"
|
||||||
|
}
|
||||||
|
|
||||||
|
$msdfAtlasGenRoot = "${{ vars.MSDF_ATLAS_GEN_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($msdfAtlasGenRoot)) {
|
||||||
|
$msdfAtlasGenRoot = $env:MSDF_ATLAS_GEN_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($msdfAtlasGenRoot)) {
|
||||||
|
$msdfAtlasGenRoot = Join-Path $thirdPartyRoot "msdf-atlas-gen"
|
||||||
|
}
|
||||||
|
|
||||||
|
$ndiSdkRoot = "${{ vars.NDI_SDK_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($ndiSdkRoot)) {
|
||||||
|
$ndiSdkRoot = $env:NDI_SDK_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($ndiSdkRoot)) {
|
||||||
|
$ndiSdkRoot = Join-Path $thirdPartyRoot "NDI 6 SDK"
|
||||||
|
}
|
||||||
|
|
||||||
|
$deckLinkSdkRoot = "${{ vars.DECKLINK_SDK_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($deckLinkSdkRoot)) {
|
||||||
|
$deckLinkSdkRoot = $env:DECKLINK_SDK_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($deckLinkSdkRoot)) {
|
||||||
|
$deckLinkSdkRoot = Join-Path $thirdPartyRoot "Blackmagic DeckLink SDK 16.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
$requiredFiles = @(
|
$requiredFiles = @(
|
||||||
(Join-Path $slangRoot "bin\slangc.exe"),
|
(Join-Path $slangRoot "bin\slangc.exe"),
|
||||||
(Join-Path $slangRoot "bin\slang-compiler.dll"),
|
(Join-Path $slangRoot "bin\slang-compiler.dll"),
|
||||||
(Join-Path $slangRoot "bin\slang-glslang.dll"),
|
(Join-Path $slangRoot "bin\slang-glslang.dll"),
|
||||||
(Join-Path $slangRoot "LICENSE")
|
(Join-Path $slangRoot "LICENSE"),
|
||||||
|
(Join-Path $msdfAtlasGenRoot "msdf-atlas-gen.exe"),
|
||||||
|
(Join-Path $ndiSdkRoot "Include\Processing.NDI.Lib.h"),
|
||||||
|
(Join-Path $ndiSdkRoot "Lib\x64\Processing.NDI.Lib.x64.lib"),
|
||||||
|
(Join-Path $ndiSdkRoot "Bin\x64\Processing.NDI.Lib.x64.dll"),
|
||||||
|
(Join-Path $deckLinkSdkRoot "Win\include\DeckLinkAPI.idl")
|
||||||
)
|
)
|
||||||
|
|
||||||
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
|
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
|
||||||
if ($missingFiles.Count -gt 0) {
|
if ($missingFiles.Count -gt 0) {
|
||||||
Write-Error "Missing native third-party dependencies. Set Gitea repository variable SLANG_ROOT, or pre-populate the repo-local 3rdParty folder on the Windows runner. Missing: $($missingFiles -join ', ')"
|
Write-Error "Missing native third-party dependencies. Initialize the private video-io-3rdParty submodule, set THIRD_PARTY_ROOT, or configure per-SDK repository variables. Missing: $($missingFiles -join ', ')"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Write-Host "Using THIRD_PARTY_ROOT=$thirdPartyRoot"
|
||||||
Write-Host "Using SLANG_ROOT=$slangRoot"
|
Write-Host "Using SLANG_ROOT=$slangRoot"
|
||||||
cmake --preset vs2022-x64-debug -DSLANG_ROOT="$slangRoot"
|
Write-Host "Using MSDF_ATLAS_GEN_ROOT=$msdfAtlasGenRoot"
|
||||||
|
Write-Host "Using NDI_SDK_ROOT=$ndiSdkRoot"
|
||||||
|
Write-Host "Using DECKLINK_SDK_ROOT=$deckLinkSdkRoot"
|
||||||
|
cmake --preset vs2022-x64-debug -DTHIRD_PARTY_ROOT="$thirdPartyRoot" -DSLANG_ROOT="$slangRoot" -DMSDF_ATLAS_GEN_ROOT="$msdfAtlasGenRoot" -DNDI_SDK_ROOT="$ndiSdkRoot" -DDECKLINK_SDK_ROOT="$deckLinkSdkRoot"
|
||||||
|
|
||||||
- name: Build Debug
|
- name: Build Debug
|
||||||
shell: powershell
|
shell: powershell
|
||||||
@@ -91,8 +157,30 @@ jobs:
|
|||||||
- ui-ubuntu
|
- ui-ubuntu
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Manual Checkout With LFS Submodules
|
||||||
uses: actions/checkout@v4
|
shell: powershell
|
||||||
|
env:
|
||||||
|
GITEA_PAT: ${{ secrets.TOKEN }}
|
||||||
|
run: |
|
||||||
|
$repoUrl = "https://aiden:${env:GITEA_PAT}@git.f-40.com/aiden/video-shader.git"
|
||||||
|
$submoduleUrl = "https://aiden:${env:GITEA_PAT}@git.f-40.com/aiden/video-io-3rdParty.git"
|
||||||
|
|
||||||
|
git init .
|
||||||
|
git lfs install --local
|
||||||
|
git remote add origin "$repoUrl"
|
||||||
|
git fetch --depth=1 origin "${{ gitea.ref }}"
|
||||||
|
git checkout FETCH_HEAD
|
||||||
|
|
||||||
|
git lfs pull origin "${{ gitea.ref }}"
|
||||||
|
git submodule sync --recursive
|
||||||
|
git config submodule.video-io-3rdParty.url "$submoduleUrl"
|
||||||
|
git submodule update --init --recursive --depth=1
|
||||||
|
git -C video-io-3rdParty lfs pull
|
||||||
|
|
||||||
|
Write-Host "Parent LFS files:"
|
||||||
|
git lfs ls-files
|
||||||
|
Write-Host "Submodule LFS files:"
|
||||||
|
git -C video-io-3rdParty lfs ls-files
|
||||||
|
|
||||||
- name: Verify Visual Studio ATL
|
- name: Verify Visual Studio ATL
|
||||||
shell: powershell
|
shell: powershell
|
||||||
@@ -114,29 +202,73 @@ jobs:
|
|||||||
- name: Configure Release
|
- name: Configure Release
|
||||||
shell: powershell
|
shell: powershell
|
||||||
run: |
|
run: |
|
||||||
|
$thirdPartyRoot = "${{ vars.THIRD_PARTY_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = $env:THIRD_PARTY_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = Join-Path $PWD "video-io-3rdParty"
|
||||||
|
}
|
||||||
|
if (-not (Test-Path -LiteralPath $thirdPartyRoot)) {
|
||||||
|
$thirdPartyRoot = Join-Path $PWD "3rdParty"
|
||||||
|
}
|
||||||
|
|
||||||
$slangRoot = "${{ vars.SLANG_ROOT }}"
|
$slangRoot = "${{ vars.SLANG_ROOT }}"
|
||||||
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
||||||
$slangRoot = $env:SLANG_ROOT
|
$slangRoot = $env:SLANG_ROOT
|
||||||
}
|
}
|
||||||
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
if ([string]::IsNullOrWhiteSpace($slangRoot)) {
|
||||||
$slangRoot = Join-Path $PWD "3rdParty\slang-2026.8-windows-x86_64"
|
$slangRoot = Join-Path $thirdPartyRoot "slang-2026.8-windows-x86_64"
|
||||||
|
}
|
||||||
|
|
||||||
|
$msdfAtlasGenRoot = "${{ vars.MSDF_ATLAS_GEN_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($msdfAtlasGenRoot)) {
|
||||||
|
$msdfAtlasGenRoot = $env:MSDF_ATLAS_GEN_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($msdfAtlasGenRoot)) {
|
||||||
|
$msdfAtlasGenRoot = Join-Path $thirdPartyRoot "msdf-atlas-gen"
|
||||||
|
}
|
||||||
|
|
||||||
|
$ndiSdkRoot = "${{ vars.NDI_SDK_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($ndiSdkRoot)) {
|
||||||
|
$ndiSdkRoot = $env:NDI_SDK_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($ndiSdkRoot)) {
|
||||||
|
$ndiSdkRoot = Join-Path $thirdPartyRoot "NDI 6 SDK"
|
||||||
|
}
|
||||||
|
|
||||||
|
$deckLinkSdkRoot = "${{ vars.DECKLINK_SDK_ROOT }}"
|
||||||
|
if ([string]::IsNullOrWhiteSpace($deckLinkSdkRoot)) {
|
||||||
|
$deckLinkSdkRoot = $env:DECKLINK_SDK_ROOT
|
||||||
|
}
|
||||||
|
if ([string]::IsNullOrWhiteSpace($deckLinkSdkRoot)) {
|
||||||
|
$deckLinkSdkRoot = Join-Path $thirdPartyRoot "Blackmagic DeckLink SDK 16.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
$requiredFiles = @(
|
$requiredFiles = @(
|
||||||
(Join-Path $slangRoot "bin\slangc.exe"),
|
(Join-Path $slangRoot "bin\slangc.exe"),
|
||||||
(Join-Path $slangRoot "bin\slang-compiler.dll"),
|
(Join-Path $slangRoot "bin\slang-compiler.dll"),
|
||||||
(Join-Path $slangRoot "bin\slang-glslang.dll"),
|
(Join-Path $slangRoot "bin\slang-glslang.dll"),
|
||||||
(Join-Path $slangRoot "LICENSE")
|
(Join-Path $slangRoot "LICENSE"),
|
||||||
|
(Join-Path $msdfAtlasGenRoot "msdf-atlas-gen.exe"),
|
||||||
|
(Join-Path $ndiSdkRoot "Include\Processing.NDI.Lib.h"),
|
||||||
|
(Join-Path $ndiSdkRoot "Lib\x64\Processing.NDI.Lib.x64.lib"),
|
||||||
|
(Join-Path $ndiSdkRoot "Bin\x64\Processing.NDI.Lib.x64.dll"),
|
||||||
|
(Join-Path $deckLinkSdkRoot "Win\include\DeckLinkAPI.idl")
|
||||||
)
|
)
|
||||||
|
|
||||||
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
|
$missingFiles = @($requiredFiles | Where-Object { -not (Test-Path -LiteralPath $_) })
|
||||||
if ($missingFiles.Count -gt 0) {
|
if ($missingFiles.Count -gt 0) {
|
||||||
Write-Error "Missing native third-party dependencies. Set Gitea repository variable SLANG_ROOT, or pre-populate the repo-local 3rdParty folder on the Windows runner. Missing: $($missingFiles -join ', ')"
|
Write-Error "Missing native third-party dependencies. Initialize the private video-io-3rdParty submodule, set THIRD_PARTY_ROOT, or configure per-SDK repository variables. Missing: $($missingFiles -join ', ')"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Write-Host "Using THIRD_PARTY_ROOT=$thirdPartyRoot"
|
||||||
Write-Host "Using SLANG_ROOT=$slangRoot"
|
Write-Host "Using SLANG_ROOT=$slangRoot"
|
||||||
cmake --preset vs2022-x64-release -DSLANG_ROOT="$slangRoot"
|
Write-Host "Using MSDF_ATLAS_GEN_ROOT=$msdfAtlasGenRoot"
|
||||||
|
Write-Host "Using NDI_SDK_ROOT=$ndiSdkRoot"
|
||||||
|
Write-Host "Using DECKLINK_SDK_ROOT=$deckLinkSdkRoot"
|
||||||
|
cmake --preset vs2022-x64-release -DTHIRD_PARTY_ROOT="$thirdPartyRoot" -DSLANG_ROOT="$slangRoot" -DMSDF_ATLAS_GEN_ROOT="$msdfAtlasGenRoot" -DNDI_SDK_ROOT="$ndiSdkRoot" -DDECKLINK_SDK_ROOT="$deckLinkSdkRoot"
|
||||||
|
|
||||||
- name: Build Release
|
- name: Build Release
|
||||||
shell: powershell
|
shell: powershell
|
||||||
|
|||||||
Reference in New Issue
Block a user