Skip to content

Update Vulkan Loader to 1.3.302 (#438) #1751

Update Vulkan Loader to 1.3.302 (#438)

Update Vulkan Loader to 1.3.302 (#438) #1751

Workflow file for this run

# Main Build CI. This compiles TRAP™ for Windows and Linux (Ubuntu)
name: Build-CI
# Controls when the workflow will run
on:
# Run on all pull requests
pull_request:
# Run on main, master and dev branches
push:
branches: [ main, master, dev ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build-linux-gcc-14:
name: Build Linux GCC 14
runs-on: [self-hosted, Linux, X64, ubuntu, "24.10", cpu]
env:
CC: gcc-14
CXX: g++-14
steps:
- name: Cleanup workspace
if: ${{ always() }}
uses: gamestrap/[email protected]
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Checkout DiscordGameSDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_DISCORDGAMESDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_DISCORDGAMESDK: ${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
run: |
cd Dependencies/DiscordGameSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
git pull origin main
cd ../..
- name: Checkout NVIDIA Nsight Aftermath SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH: ${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
run: |
cd Dependencies/Nsight-Aftermath
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
git pull origin main
cd ../..
- name: Checkout Steamworks SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_STEAMWORKSSDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_STEAMWORKSSDK: ${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
run: |
cd Dependencies/SteamworksSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
git pull origin main
cd ../..
- name: Add toolchain ppa
run: sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/ppa
- name: Update package list
run: sudo apt update
- name: Install dependencies
run: sudo apt install -y g++-14 mold xorg-dev libwayland-dev libxkbcommon-dev wayland-protocols ninja-build
- name: Make python3 available as python
run: sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
- name: Make pip3 available as pip
run: sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
- name: Make g++-14 available as g++
run: sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 10
- name: Make gcc-14 available as gcc
run: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 10
- name: Make scripts and premake executable
run: |
chmod +x libs/premake5/linux/premake5
chmod +x GeneratorScripts/GenerateProjectNinjaGCC.sh
- name: Generate Ninja files
run: |
cd GeneratorScripts/
./GenerateProjectNinjaGCC.sh
cd ..
- name: Setup problem matchers
uses: ./.github/composite/problem-matchers
- name: Compile code
run: ninja Release -j $(nproc)
- name: Finalize data for artifact
run: |
cp -r Games/Headless-Tests/Assets bin/Release-linux-x86_64/Games/Headless-Tests/
cp -r Games/Sandbox/Assets bin/Release-linux-x86_64/Games/Sandbox/
cp -r Games/Tests/Assets bin/Release-linux-x86_64/Games/Tests/
cp -r Games/Tests3D/Assets bin/Release-linux-x86_64/Games/Tests3D/
cp -r Games/TRAP-Editor/Assets bin/Release-linux-x86_64/Games/TRAP-Editor/
cp -r Games/TRAP-Editor/Resources bin/Release-linux-x86_64/Games/TRAP-Editor/
cp -r Utility/QOIConv bin/Release-linux-x86_64/Utility/
cp -r Licenses bin/Release-linux-x86_64/Licenses
rm bin/Release-linux-x86_64/Utility/QOIConv/QOIConv.exe
- name: Upload artifacts (TrappedGames)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname != null
uses: ./.github/composite/artifact-upload
with:
target-filename: Linux GCC Release Executables
server-hostname: ${{ secrets.ARTIFACT_HOST }}
server-share: "artifacts"
server-username: ${{ secrets.ARTIFACT_USERNAME }}
server-password: ${{ secrets.ARTIFACT_PASSWORD }}
folder-to-upload: >
bin/Release-linux-x86_64/./Games
bin/Release-linux-x86_64/./Utility
bin/Release-linux-x86_64/./UnitTests
bin/Release-linux-x86_64/./Licenses
- name: Upload artifacts (GitHub)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname == null
uses: actions/upload-artifact@v4
with:
name: Linux GCC Release Executables
path: |
bin/Release-linux-x86_64/Games
bin/Release-linux-x86_64/Utility
bin/Release-linux-x86_64/UnitTests
bin/Release-linux-x86_64/Licenses
build-linux-clang-19:
name: Build Linux Clang 19
runs-on: [self-hosted, Linux, X64, ubuntu, "24.10", cpu]
env:
CC: clang-19
CXX: clang++-19
steps:
- name: Cleanup workspace
if: ${{ always() }}
uses: gamestrap/[email protected]
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Checkout DiscordGameSDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_DISCORDGAMESDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_DISCORDGAMESDK: ${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
run: |
cd Dependencies/DiscordGameSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
git pull origin main
cd ../..
- name: Checkout NVIDIA Nsight Aftermath SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH: ${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
run: |
cd Dependencies/Nsight-Aftermath
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
git pull origin main
cd ../..
- name: Checkout Steamworks SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_STEAMWORKSSDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_STEAMWORKSSDK: ${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
run: |
cd Dependencies/SteamworksSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
git pull origin main
cd ../..
- name: Add toolchain ppa
run: sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/ppa
- name: Update package list
run: sudo apt update
- name: Install dependencies
run: sudo apt install -y clang-19 llvm-19 mold xorg-dev libwayland-dev libxkbcommon-dev wayland-protocols ninja-build
- name: Make python3 available as python
run: sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
- name: Make pip3 available as pip
run: sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
- name: Make llvm-ar-19 available as llvm-ar
run: sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-19 10
- name: Make clang-19 available as clang
run: sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-19 10
- name: Make clang++-19 available as clang++
run: sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-19 10
- name: Make scripts and premake executable
run: |
chmod +x libs/premake5/linux/premake5
chmod +x GeneratorScripts/GenerateProjectNinjaClang.sh
- name: Generate Ninja files
run: |
cd GeneratorScripts/
./GenerateProjectNinjaClang.sh
cd ..
- name: Setup problem matchers
uses: ./.github/composite/problem-matchers
- name: Compile code
run: ninja Release -j $(nproc)
- name: Finalize data for artifact
run: |
cp -r Games/Headless-Tests/Assets bin/Release-linux-x86_64/Games/Headless-Tests/
cp -r Games/Sandbox/Assets bin/Release-linux-x86_64/Games/Sandbox/
cp -r Games/Tests/Assets bin/Release-linux-x86_64/Games/Tests/
cp -r Games/Tests3D/Assets bin/Release-linux-x86_64/Games/Tests3D/
cp -r Games/TRAP-Editor/Assets bin/Release-linux-x86_64/Games/TRAP-Editor/
cp -r Games/TRAP-Editor/Resources bin/Release-linux-x86_64/Games/TRAP-Editor/
cp -r Utility/QOIConv bin/Release-linux-x86_64/Utility/
cp -r Licenses bin/Release-linux-x86_64/Licenses
rm bin/Release-linux-x86_64/Utility/QOIConv/QOIConv.exe
- name: Upload artifacts (TrappedGames)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname != null
uses: ./.github/composite/artifact-upload
with:
target-filename: Linux Clang Release Executables
server-hostname: ${{ secrets.ARTIFACT_HOST }}
server-share: "artifacts"
server-username: ${{ secrets.ARTIFACT_USERNAME }}
server-password: ${{ secrets.ARTIFACT_PASSWORD }}
folder-to-upload: >
bin/Release-linux-x86_64/./Games
bin/Release-linux-x86_64/./Utility
bin/Release-linux-x86_64/./UnitTests
bin/Release-linux-x86_64/./Licenses
- name: Upload artifacts (GitHub)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname == null
uses: actions/upload-artifact@v4
with:
name: Linux Clang Release Executables
path: |
bin/Release-linux-x86_64/Games
bin/Release-linux-x86_64/Utility
bin/Release-linux-x86_64/UnitTests
bin/Release-linux-x86_64/Licenses
build-windows-msvc-2022:
name: Build Windows MSVC 2022
runs-on: [self-hosted, windows, X64, cpu]
steps:
- name: Cleanup workspace
if: ${{ always() }}
uses: gamestrap/[email protected]
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Checkout DiscordGameSDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_DISCORDGAMESDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_DISCORDGAMESDK: ${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
run: |
cd Dependencies/DiscordGameSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_DISCORDGAMESDK }}
git pull origin main
cd ../..
- name: Checkout NVIDIA Nsight Aftermath SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_NSIGHTAFTERMATH: ${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
run: |
cd Dependencies/Nsight-Aftermath
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_NSIGHTAFTERMATH }}
git pull origin main
cd ../..
- name: Checkout Steamworks SDK
if: env.HAS_GIT_NDA_DEPS && env.HAS_GIT_NDA_DEPS_STEAMWORKSSDK
env:
HAS_GIT_NDA_DEPS: ${{ secrets.GIT_NDA_DEPS }}
HAS_GIT_NDA_DEPS_STEAMWORKSSDK: ${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
run: |
cd Dependencies/SteamworksSDK
git init
git remote add origin ${{ secrets.GIT_NDA_DEPS }}/${{ secrets.GIT_NDA_DEPS_STEAMWORKSSDK }}
git pull origin main
cd ../..
- name: Setup developer console
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- name: Generate Visual Studio 2022 Project files
run: |
cd GeneratorScripts
.\GenerateProjectNinjaMSVC.bat
cd ..
- name: Setup problem matchers
uses: ./.github/composite/problem-matchers
- name: Compile code
run: |
$maxCPUCount = if($env:CONTAINER_MAX_CPUS) {$env:CONTAINER_MAX_CPUS} Else {$env:NUMBER_OF_PROCESSORS}
ninja Release -j $maxCPUCount
- name: Finalize data for artifact
run: |
Xcopy Games\Headless-Tests\Assets bin\Release-windows-x86_64\Games\Headless-Tests\Assets /I /H /E /C
Xcopy Games\Sandbox\Assets bin\Release-windows-x86_64\Games\Sandbox\Assets /I /H /E /C
Xcopy Games\Tests\Assets bin\Release-windows-x86_64\Games\Tests\Assets /I /H /E /C
Xcopy Games\Tests3D\Assets bin\Release-windows-x86_64\Games\Tests3D\Assets /I /H /E /C
Xcopy Games\TRAP-Editor\Assets bin\Release-windows-x86_64\Games\TRAP-Editor\Assets /I /H /E /C
Xcopy Games\TRAP-Editor\Resources bin\Release-windows-x86_64\Games\TRAP-Editor\Resources /I /H /E /C
Xcopy Licenses bin\Release-windows-x86_64\Licenses /I /H /E /C
Xcopy Utility\QOIConv bin\Release-windows-x86_64\Utility\QOIConv /I /H /E /C
Xcopy Redists bin\Release-windows-x86_64\Redists /I /H /E /C
Get-ChildItem -Path "bin" -Filter "*.pdb" -Recurse | Remove-Item -Force
Remove-Item bin\Release-windows-x86_64\Utility\QOIConv\QOIConv
- name: Upload artifacts (TrappedGames)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname != null
uses: ./.github/composite/artifact-upload
with:
target-filename: Windows MSVC Release Executables
server-hostname: ${{ secrets.ARTIFACT_HOST }}
server-share: "artifacts"
server-username: ${{ secrets.ARTIFACT_USERNAME }}
server-password: ${{ secrets.ARTIFACT_PASSWORD }}
folder-to-upload: >
bin/Release-windows-x86_64/./Games
bin/Release-windows-x86_64/./Utility
bin/Release-windows-x86_64/./UnitTests
bin/Release-windows-x86_64/./Licenses
bin/Release-windows-x86_64/./Redists
- name: Upload artifacts (GitHub)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname == null
uses: actions/upload-artifact@v4
with:
name: Windows MSVC 2022 Release Executables
path: |
bin/Release-windows-x86_64/Games
bin/Release-windows-x86_64/Utility
bin/Release-windows-x86_64/UnitTests
bin/Release-windows-x86_64/Licenses
bin/Release-windows-x86_64/Redists
test-windows:
name: Unit-Test Windows
runs-on: [self-hosted, windows, X64, cpu]
needs: [build-windows-msvc-2022]
steps:
- name: Cleanup workspace
if: ${{ always() }}
uses: gamestrap/[email protected]
- name: Download artifact (TrappedGames)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname != null
uses: gamestrap/[email protected]
with:
server-hostname: ${{ secrets.ARTIFACT_HOST }}
server-share: "artifacts"
server-username: ${{ secrets.ARTIFACT_USERNAME }}
server-password: ${{ secrets.ARTIFACT_PASSWORD }}
artifact-name: "Windows MSVC Release Executables"
- name: Download artifact (GitHub)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname == null
uses: actions/download-artifact@v4
with:
name: Windows MSVC 2022 Release Executables
- name: Run Tests
run: |
cd UnitTests
$env:TRACY_NO_INVARIANT_CHECK=1; .\UnitTests.exe; Remove-Item Env:\TRACY_NO_INVARIANT_CHECK
test-linux:
name: Unit-Test Linux
runs-on: [self-hosted, Linux, X64, ubuntu, cpu]
needs: [build-linux-clang-19]
steps:
- name: Cleanup workspace
if: ${{ always() }}
uses: gamestrap/[email protected]
- name: Download artifact (TrappedGames)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname != null
uses: gamestrap/[email protected]
with:
server-hostname: ${{ secrets.ARTIFACT_HOST }}
server-share: "artifacts"
server-username: ${{ secrets.ARTIFACT_USERNAME }}
server-password: ${{ secrets.ARTIFACT_PASSWORD }}
artifact-name: "Linux Clang Release Executables"
- name: Download artifact (GitHub)
env:
artifact_hostname: ${{secrets.ARTIFACT_HOST}}
if: env.artifact_hostname == null
uses: actions/download-artifact@v4
with:
name: Linux Clang Release Executables
- name: Run Tests
run: |
cd UnitTests
chmod +x UnitTests
TRACY_NO_INVARIANT_CHECK=1 ./UnitTests