1- name : Build code on Linux
1+ name : Build code
22
33on :
44 push :
@@ -23,26 +23,37 @@ jobs:
2323 steps :
2424 - uses : actions/checkout@v4
2525
26+ - name : Set Vulkan SDK Version
27+ id : set-version
28+ run : echo "VULKAN_SDK_VERSION=1.4.309.0" >> $GITHUB_ENV
29+
2630 - name : Create Build Environment
2731 run : |
2832 sudo apt update
2933 ${{matrix.install}}
3034 cmake -E make_directory ${{runner.workspace}}/build
3135
36+ - name : Cache Vulkan SDK
37+ id : cache-vulkan
38+ uses : actions/cache@v4
39+ with :
40+ path : vulkan_sdk
41+ key : vulkan-sdk-${{env.VULKAN_SDK_VERSION}}
42+
3243 - name : Prepare Vulkan SDK
3344 shell : bash
3445 run : |
35- curl -LS -o vulkansdk.tar.xz https://sdk.lunarg.com/sdk/download/1.4.309.0/linux/vulkansdk-linux-x86_64-1.4.309.0.tar.xz
36- mkdir -p vulkan_sdk
37- tar xf vulkansdk.tar.xz -C vulkan_sdk
38- rm -rf vulkansdk.tar.xz
39-
40- export VULKAN_SDK=$GITHUB_WORKSPACE/vulkan_sdk/1.4.309.0/x86_64
41- export PATH=$VULKAN_SDK/bin:$PATH
42- export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
43- export VK_ICD_FILENAMES=$VULKAN_SDK/etc/vulkan/icd.d
44- export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/layer.d
46+ if [ ! -d "vulkan_sdk/${{env.VULKAN_SDK_VERSION}}/x86_64" ]; then
47+ echo "Vulkan SDK not found in cache. Downloading..."
48+ curl -LS -o vulkansdk.tar.xz https://sdk.lunarg.com/sdk/download/${{env.VULKAN_SDK_VERSION}}/linux/vulkansdk-linux-x86_64-${{env.VULKAN_SDK_VERSION}}.tar.xz
49+ mkdir -p vulkan_sdk
50+ tar xf vulkansdk.tar.xz -C vulkan_sdk
51+ rm -f vulkansdk.tar.xz
52+ else
53+ echo "Using cached Vulkan SDK"
54+ fi
4555
56+ export VULKAN_SDK=$GITHUB_WORKSPACE/vulkan_sdk/${{env.VULKAN_SDK_VERSION}}/x86_64
4657 echo "VULKAN_SDK=$VULKAN_SDK" >> $GITHUB_ENV
4758 echo "PATH=$VULKAN_SDK/bin:$PATH" >> $GITHUB_ENV
4859 echo "LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
0 commit comments