1
- name : Static code analysis (clang-tidy)
1
+ name : Static code analysis
2
2
3
3
on :
4
4
push :
@@ -12,39 +12,38 @@ jobs:
12
12
steps :
13
13
- uses : actions/checkout@v4
14
14
15
- # Cache Vulkan SDK
16
- - name : Cache Vulkan SDK
17
- id : cache-vulkan
18
- uses : actions/cache@v4
19
- with :
20
- path : vulkan_sdk
21
- key : vulkan-sdk-1.4.309.0
15
+ - name : Set Vulkan SDK Version
16
+ id : set-version
17
+ run : echo "VULKAN_SDK_VERSION=1.3.283.0" >> $GITHUB_ENV
22
18
23
- # Install system dependencies
24
19
- name : Install system dependencies
25
20
run : |
26
21
sudo apt update
27
22
sudo apt install -y clang-15 clang-tidy-15 cmake parallel libc++-15-dev libc++abi-15-dev
28
23
29
- # Download Vulkan SDK only if not cached
24
+ - name : Check for Vulkan SDK Cache
25
+ id : cache-vulkan
26
+ uses : actions/cache@v4
27
+ with :
28
+ path : vulkan_sdk
29
+ key : vulkan-sdk-${{env.VULKAN_SDK_VERSION}}
30
+
30
31
- name : Download Vulkan SDK
31
32
if : steps.cache-vulkan.outputs.cache-hit != 'true'
32
33
run : |
33
- 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
34
+ 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
34
35
mkdir -p vulkan_sdk
35
36
tar xf vulkansdk.tar.xz -C vulkan_sdk
36
37
37
- # Set environment variables for Clang and Vulkan SDK
38
38
- name : Set environment variables
39
39
run : |
40
40
echo "CLANG_TIDY=clang-tidy-15" >> $GITHUB_ENV
41
- echo "VULKAN_SDK=${GITHUB_WORKSPACE}/vulkan_sdk/1.4.309.0 /x86_64" >> $GITHUB_ENV
42
- echo "PATH=${GITHUB_WORKSPACE}/vulkan_sdk/1.4.309.0 /x86_64/bin:$PATH" >> $GITHUB_ENV
43
- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/vulkan_sdk/1.4.309.0 /x86_64/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
44
- echo "VK_ICD_FILENAMES=${GITHUB_WORKSPACE}/vulkan_sdk/1.4.309.0 /x86_64/etc/vulkan/icd.d" >> $GITHUB_ENV
45
- echo "VK_LAYER_PATH=${GITHUB_WORKSPACE}/vulkan_sdk/1.4.309.0 /x86_64/etc/vulkan/layer.d" >> $GITHUB_ENV
41
+ echo "VULKAN_SDK=${GITHUB_WORKSPACE}/vulkan_sdk/${{env.VULKAN_SDK_VERSION}} /x86_64" >> $GITHUB_ENV
42
+ echo "PATH=${GITHUB_WORKSPACE}/vulkan_sdk/${{env.VULKAN_SDK_VERSION}} /x86_64/bin:$PATH" >> $GITHUB_ENV
43
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/vulkan_sdk/${{env.VULKAN_SDK_VERSION}} /x86_64/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
44
+ echo "VK_ICD_FILENAMES=${GITHUB_WORKSPACE}/vulkan_sdk/${{env.VULKAN_SDK_VERSION}} /x86_64/etc/vulkan/icd.d" >> $GITHUB_ENV
45
+ echo "VK_LAYER_PATH=${GITHUB_WORKSPACE}/vulkan_sdk/${{env.VULKAN_SDK_VERSION}} /x86_64/etc/vulkan/layer.d" >> $GITHUB_ENV
46
46
47
- # Configure the project with CMake
48
47
- name : Configure with CMake
49
48
run : |
50
49
cmake -S . -B build \
@@ -53,15 +52,13 @@ jobs:
53
52
-DCMAKE_C_COMPILER=clang-15 \
54
53
-DVMA_BUILD_SAMPLES=YES
55
54
56
- # List files to analyze
57
55
- name : Check the files found for clang-tidy
58
56
run : |
59
57
find src include \
60
58
-path '*/_deps/*' -prune -o \
61
59
-path '*/build/*' -prune -o \
62
60
\( -name '*.cpp' -o -name '*.hpp' \) -print
63
61
64
- # Run clang-tidy in parallel
65
62
- name : Run clang-tidy
66
63
run : |
67
64
find src include \
71
68
parallel -0 clang-tidy -p build {} |
72
69
tee output || true
73
70
74
- # Summarize warnings
75
71
- name : Summarize clang-tidy warnings
76
72
run : |
77
73
grep -hEo '\[[a-z0-9]+-[a-z0-9-]+\]' output \
0 commit comments