Skip to content

Commit 35d8b52

Browse files
Add DiligentTools TSAN CI and update actions to v21
1 parent c162227 commit 35d8b52

7 files changed

Lines changed: 61 additions & 31 deletions

File tree

.github/workflows/build-android.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ jobs:
1919

2020
steps:
2121
- name: Clean Disk
22-
uses: DiligentGraphics/github-action/clean-disk-ubuntu@v19
22+
uses: DiligentGraphics/github-action/clean-disk-ubuntu@v21
2323

2424
- name: Checkout
25-
uses: DiligentGraphics/github-action/checkout@v19
25+
uses: DiligentGraphics/github-action/checkout@v21
2626

2727
- name: Create CMake
2828
if: success()
@@ -34,7 +34,7 @@ jobs:
3434
3535
- name: Set up build environment
3636
if: success()
37-
uses: DiligentGraphics/github-action/setup-build-env@v19
37+
uses: DiligentGraphics/github-action/setup-build-env@v21
3838
with:
3939
platform: Android
4040

.github/workflows/build-apple.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,21 +53,21 @@ jobs:
5353

5454
steps:
5555
- name: Checkout
56-
uses: DiligentGraphics/github-action/checkout@v19
56+
uses: DiligentGraphics/github-action/checkout@v21
5757

5858
- name: Set up build environment
5959
if: success()
60-
uses: DiligentGraphics/github-action/setup-build-env@v19
60+
uses: DiligentGraphics/github-action/setup-build-env@v21
6161
with:
6262
platform: ${{ matrix.platform }}
6363

6464
- name: Configure CMake
6565
if: success()
66-
uses: DiligentGraphics/github-action/configure-cmake@v19
66+
uses: DiligentGraphics/github-action/configure-cmake@v21
6767
with:
6868
build-type: ${{ matrix.build_type }}
6969
cmake-args: ${{ matrix.cmake_args }}
7070

7171
- name: Build
7272
if: success()
73-
uses: DiligentGraphics/github-action/build@v19
73+
uses: DiligentGraphics/github-action/build@v21

.github/workflows/build-emscripten.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,21 @@ jobs:
3838

3939
steps:
4040
- name: Checkout
41-
uses: DiligentGraphics/github-action/checkout@v19
41+
uses: DiligentGraphics/github-action/checkout@v21
4242

4343
- name: Set up build environment
4444
if: success()
45-
uses: DiligentGraphics/github-action/setup-build-env@v19
45+
uses: DiligentGraphics/github-action/setup-build-env@v21
4646
with:
4747
platform: Web
4848

4949
- name: Configure CMake
5050
if: success()
51-
uses: DiligentGraphics/github-action/configure-cmake@v19
51+
uses: DiligentGraphics/github-action/configure-cmake@v21
5252
with:
5353
build-type: ${{ matrix.build_type }}
5454
cmake-args: ${{ matrix.cmake_args }}
5555

5656
- name: Build
5757
if: success()
58-
uses: DiligentGraphics/github-action/build@v19
58+
uses: DiligentGraphics/github-action/build@v21

.github/workflows/build-linux.yml

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,30 @@ jobs:
6363
cc: "clang-18"
6464
cxx: "clang++-18"
6565

66+
- name: "Clang-TSAN"
67+
build_type: "RelWithDebInfo"
68+
cmake_generator: "Ninja"
69+
cmake_args: ""
70+
sanitizer: "thread"
71+
cc: "clang-18"
72+
cxx: "clang++-18"
73+
6674
name: Linux -> ${{ matrix.name }}-x64, ${{ matrix.build_type }}
6775

6876
steps:
6977
- name: Checkout
70-
uses: DiligentGraphics/github-action/checkout@v19
78+
uses: DiligentGraphics/github-action/checkout@v21
7179

7280
- name: Set up build environment
7381
if: success()
74-
uses: DiligentGraphics/github-action/setup-build-env@v19
82+
uses: DiligentGraphics/github-action/setup-build-env@v21
7583
with:
7684
platform: Linux
7785
cmake-generator: ${{ matrix.cmake_generator }}
7886

7987
- name: Configure CMake
8088
if: success()
81-
uses: DiligentGraphics/github-action/configure-cmake@v19
89+
uses: DiligentGraphics/github-action/configure-cmake@v21
8290
with:
8391
cc: ${{ matrix.cc }}
8492
cxx: ${{ matrix.cxx }}
@@ -90,33 +98,33 @@ jobs:
9098
- name: Build
9199
id: build
92100
if: success()
93-
uses: DiligentGraphics/github-action/build@v19
101+
uses: DiligentGraphics/github-action/build@v21
94102

95103
- name: Sample Tests Vk
96104
if: success()
97-
uses: DiligentGraphics/github-action/run-sample-tests@v19
105+
uses: DiligentGraphics/github-action/run-sample-tests@v21
98106
with:
99107
mode: "vk_sw"
100108
golden-image-mode: "compare_update"
101109

102110
- name: Sample Tests Vk Compatibility
103111
if: success()
104-
uses: DiligentGraphics/github-action/run-sample-tests@v19
112+
uses: DiligentGraphics/github-action/run-sample-tests@v21
105113
with:
106114
mode: "vk_sw"
107115
golden-image-mode: "compare"
108116
vk-compatibility: true
109117

110118
- name: Sample Tests GL
111119
if: ${{ success() || failure() && steps.build.outcome == 'success' }}
112-
uses: DiligentGraphics/github-action/run-sample-tests@v19
120+
uses: DiligentGraphics/github-action/run-sample-tests@v21
113121
with:
114122
mode: "gl"
115123
golden-image-mode: "compare_update"
116124

117125
- name: Sample Tests GL with Non-Separable Programs
118126
if: ${{ success() || failure() && steps.build.outcome == 'success' }}
119-
uses: DiligentGraphics/github-action/run-sample-tests@v19
127+
uses: DiligentGraphics/github-action/run-sample-tests@v21
120128
with:
121129
mode: "gl"
122130
golden-image-mode: "compare"
@@ -127,7 +135,7 @@ jobs:
127135
uses: actions/upload-artifact@v7
128136
# NB: it is essential to include failure() to override the default status check of success()
129137
# that is automatically applied to if conditions that don't contain a status check function.
130-
if: ${{ (success() || failure() && steps.build.outcome == 'success') && matrix.name != 'Clang-ASAN' }}
138+
if: ${{ (success() || failure() && steps.build.outcome == 'success') && matrix.name != 'Clang-ASAN' && matrix.name != 'Clang-TSAN' }}
131139
with:
132140
name: GoldenImages-${{ matrix.name }}-${{ matrix.toolset }}-${{ matrix.build_type }}
133141
path: |

.github/workflows/build-windows.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,19 @@ jobs:
8282

8383
steps:
8484
- name: Checkout
85-
uses: DiligentGraphics/github-action/checkout@v19
85+
uses: DiligentGraphics/github-action/checkout@v21
8686

8787
- name: Set up build environment
8888
if: success()
89-
uses: DiligentGraphics/github-action/setup-build-env@v19
89+
uses: DiligentGraphics/github-action/setup-build-env@v21
9090
with:
9191
platform: ${{ matrix.platform }}
9292
cmake-generator: ${{ matrix.cmake_generator }}
9393
ninja-vs-arch: ${{ matrix.toolset }}
9494

9595
- name: Configure CMake
9696
if: success()
97-
uses: DiligentGraphics/github-action/configure-cmake@v19
97+
uses: DiligentGraphics/github-action/configure-cmake@v21
9898
with:
9999
generator: ${{ matrix.cmake_generator }}
100100
vs-arch: ${{ matrix.toolset }}
@@ -104,13 +104,13 @@ jobs:
104104
- name: Build
105105
id: build
106106
if: success()
107-
uses: DiligentGraphics/github-action/build@v19
107+
uses: DiligentGraphics/github-action/build@v21
108108
with:
109109
build-args: ${{ matrix.build_args }}
110110

111111
- name: Sample Tests D3D11
112112
if: ${{ matrix.name == 'Win10' || matrix.name == 'Win8.1' || matrix.name == 'Win10-Ninja' }}
113-
uses: DiligentGraphics/github-action/run-sample-tests@v19
113+
uses: DiligentGraphics/github-action/run-sample-tests@v21
114114
with:
115115
mode: "d3d11_sw"
116116
golden-image-mode: "compare_update"
@@ -119,7 +119,7 @@ jobs:
119119
# NB: it is essential to include failure() to override the default status check of success()
120120
# that is automatically applied to if conditions that don't contain a status check function.
121121
if: ${{ (success() || failure() && steps.build.outcome == 'success') && (matrix.name == 'Win10' || matrix.name == 'Win10-Ninja') }}
122-
uses: DiligentGraphics/github-action/run-sample-tests@v19
122+
uses: DiligentGraphics/github-action/run-sample-tests@v21
123123
with:
124124
mode: "d3d12_sw"
125125
golden-image-mode: "compare_update"
@@ -128,7 +128,7 @@ jobs:
128128
# NB: it is essential to include failure() to override the default status check of success()
129129
# that is automatically applied to if conditions that don't contain a status check function.
130130
if: ${{ (success() || failure() && steps.build.outcome == 'success') && (matrix.name == 'Win10') }}
131-
uses: DiligentGraphics/github-action/run-sample-tests@v19
131+
uses: DiligentGraphics/github-action/run-sample-tests@v21
132132
with:
133133
mode: "wgpu"
134134
golden-image-mode: "compare_update"

.github/workflows/msvc_analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@ jobs:
2828

2929
steps:
3030
- name: Checkout
31-
uses: DiligentGraphics/github-action/checkout@v19
31+
uses: DiligentGraphics/github-action/checkout@v21
3232

3333
- name: Set up build environment
3434
if: success()
35-
uses: DiligentGraphics/github-action/setup-build-env@v19
35+
uses: DiligentGraphics/github-action/setup-build-env@v21
3636
with:
3737
platform: ${{ matrix.platform }}
3838
cmake-generator: ${{ matrix.cmake_generator }}
3939

4040
- name: Configure CMake
4141
if: success()
42-
uses: DiligentGraphics/github-action/configure-cmake@v19
42+
uses: DiligentGraphics/github-action/configure-cmake@v21
4343
with:
4444
generator: ${{ matrix.cmake_generator }}
4545
vs-arch: ${{ matrix.toolset }}
@@ -48,7 +48,7 @@ jobs:
4848

4949
- name: Build
5050
if: success()
51-
uses: DiligentGraphics/github-action/build@v19
51+
uses: DiligentGraphics/github-action/build@v21
5252
with:
5353
build-args: ${{ matrix.build_args }}
5454

Tests/ProcessGoldenImages.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,28 @@ NC='\033[0m' # No color
3333

3434
GOLDEN_IMAGE_TOLERANCE=2
3535

36+
function setup_tsan_suppressions
37+
{
38+
if [[ "$(uname -s)" != "Linux" || "${TSAN_OPTIONS:-}" == *"suppressions="* ]]; then
39+
return
40+
fi
41+
42+
local script_dir
43+
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
44+
45+
local samples_dir
46+
samples_dir=$(cd -- "$script_dir/.." && pwd)
47+
48+
local tsan_supp="$samples_dir/../DiligentCore/BuildTools/Sanitizers/tsan.supp"
49+
if [[ -f "$tsan_supp" ]]; then
50+
export TSAN_OPTIONS="${TSAN_OPTIONS:+$TSAN_OPTIONS:}suppressions=$tsan_supp"
51+
else
52+
echo "::error:: TSAN suppression file was not found: $tsan_supp"
53+
fi
54+
}
55+
56+
setup_tsan_suppressions
57+
3658
if [[ $# -lt 3 ]]; then
3759
printf "${RED}At least three arguments are required${NC}\n"
3860
print_help

0 commit comments

Comments
 (0)