Skip to content

Commit 085fbbf

Browse files
chesik-amdclaude
andauthored
Add GitHub Actions CI with Windows and Ubuntu build matrix (#14)
* Add GitHub Actions CI with Windows and Ubuntu build matrix Builds RadeonRaytracingAnalyzer and RraBackendTest on windows-latest (VS 2022) and ubuntu-24.04 using Qt 6.7.0. Runs the backend test suite against the committed sample trace on each push/PR to main. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Use ubuntu-22.04 until Ubuntu 24.04 build issue is resolved Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Enable Git LFS on checkout and run tests against all sample traces The .rra sample files are stored in LFS; without lfs: true the checkout action downloads pointer stubs, causing the test to fail with "malformed data". Also run the test binary against every sample in samples/*.rra rather than a single file, for broader coverage across different scene types. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Fix Windows test loop variable syntax for batch file context GitHub Actions shell: cmd writes to a .cmd file, requiring %%f not %f. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4 <noreply@anthropic.com>
1 parent 6ab645e commit 085fbbf

2 files changed

Lines changed: 114 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
build:
11+
name: ${{ matrix.os-name }}
12+
runs-on: ${{ matrix.runner }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
include:
17+
- runner: windows-latest
18+
os-name: Windows
19+
qt-arch: win64_msvc2019_64
20+
- runner: ubuntu-22.04
21+
os-name: Ubuntu
22+
23+
steps:
24+
- uses: actions/checkout@v5
25+
with:
26+
lfs: true
27+
28+
- name: Set up Python
29+
uses: actions/setup-python@v6
30+
with:
31+
python-version: '3.11'
32+
33+
- name: Install Qt (Windows)
34+
if: runner.os == 'Windows'
35+
uses: jurplel/install-qt-action@v4
36+
with:
37+
version: '6.7.0'
38+
arch: ${{ matrix.qt-arch }}
39+
dir: 'C:\'
40+
cache: true
41+
42+
- name: Install Qt (Ubuntu)
43+
if: runner.os == 'Linux'
44+
uses: jurplel/install-qt-action@v4
45+
with:
46+
version: '6.7.0'
47+
arch: linux_gcc_64
48+
dir: '${{ github.workspace }}'
49+
modules: 'qtwaylandcompositor'
50+
cache: true
51+
52+
- name: Install Linux dependencies
53+
if: runner.os == 'Linux'
54+
run: |
55+
sudo apt-get update -q
56+
sudo apt-get install -y \
57+
cmake \
58+
build-essential \
59+
chrpath \
60+
patchelf \
61+
libxcb-xinerama0 \
62+
libxcb-cursor-dev \
63+
mesa-common-dev \
64+
libglu1-mesa-dev \
65+
libgl1-mesa-dev \
66+
libx11-xcb-dev \
67+
libxkbcommon-x11-dev \
68+
libwayland-dev
69+
70+
- name: Pre-build (Windows)
71+
if: runner.os == 'Windows'
72+
shell: cmd
73+
run: |
74+
cd build
75+
python pre_build.py --vs 2022 --qt 6.7.0 --qt-root C:\Qt
76+
77+
- name: Pre-build (Ubuntu)
78+
if: runner.os == 'Linux'
79+
run: |
80+
cd build
81+
python3 pre_build.py --qt 6.7.0 --qt-root "${{ github.workspace }}/Qt"
82+
83+
- name: Build Release (Windows)
84+
if: runner.os == 'Windows'
85+
shell: cmd
86+
run: |
87+
cmake --build build\win\vs2022 --config Release --target RadeonRaytracingAnalyzer RraBackendTest --parallel %NUMBER_OF_PROCESSORS%
88+
89+
- name: Build Release (Ubuntu)
90+
if: runner.os == 'Linux'
91+
run: |
92+
cmake --build build/linux/make/release --target RadeonRaytracingAnalyzer RraBackendTest --parallel $(nproc)
93+
94+
- name: Build Debug tests (Windows)
95+
if: runner.os == 'Windows'
96+
shell: cmd
97+
run: |
98+
cmake --build build\win\vs2022 --config Debug --target RraBackendTest --parallel %NUMBER_OF_PROCESSORS%
99+
100+
- name: Build Debug tests (Ubuntu)
101+
if: runner.os == 'Linux'
102+
run: |
103+
cmake --build build/linux/make/debug --target RraBackendTest --parallel $(nproc)
104+
105+
- name: Run tests (Windows)
106+
if: runner.os == 'Windows'
107+
shell: cmd
108+
run: for %%f in (samples\*.rra) do (build\win\debug\RraBackendTest-d.exe --rra %%f || exit /b 1)
109+
110+
- name: Run tests (Ubuntu)
111+
if: runner.os == 'Linux'
112+
run: for f in samples/*.rra; do build/linux/debug/RraBackendTest-d --rra "$f"; done

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Radeon™ Raytracing Analyzer
22

3+
[![Build Status](https://github.com/GPUOpen-Tools/radeon_raytracing_analyzer/actions/workflows/build.yml/badge.svg)](https://github.com/GPUOpen-Tools/radeon_raytracing_analyzer/actions/workflows/build.yml)
4+
35
The Radeon Raytracing Analyzer (RRA) is a tool designed to help improve the raytracing performance of AMD GPUs that support raytracing.
46
The tool thus far focuses on the visualization of the Acceleration Structures, which consist of Bounding Volume Hierarchies.
57

0 commit comments

Comments
 (0)