Skip to content

Commit 54b2c08

Browse files
chesik-amdclaude
andauthored
Add GitHub Actions CI workflow (#28)
* Add GitHub Actions CI workflow Build RadeonMemoryVisualizer and RmvBackendTest on Windows (VS 2022) and Ubuntu 24.04 for pushes to master and PRs targeting master. Run backend tests against samples/sample_trace.rmv. Add build status badge to README. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Fix Qt install path so pre_build.py can locate Qt jurplel/install-qt-action adds an extra Qt/ subdirectory to the configured dir, so passing dir: 'C:\Qt' or '<workspace>/Qt' resulted in Qt landing at C:\Qt\Qt\6.7.0 / <workspace>/Qt/Qt/6.7.0, which pre_build.py's --qt-root search couldn't find. Drop the extra Qt/ suffix from dir so the action's added subdirectory is the one --qt-root points at. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Install Qt Wayland module and wayland system libs on Ubuntu devtools_qt_helper.cmake requires the Qt6::WaylandClient component, which install-qt-action does not include with Qt Base. Add the qtwayland Qt module and the libwayland-dev system package so the required client/server/cursor/egl libs resolve. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Use qtwaylandcompositor as the aqt module name aqt does not expose 'qtwayland' as a module identifier for Qt 6.7.0; both the compositor and client libraries ship in a single module named qtwaylandcompositor, which is what provides Qt6WaylandClient. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> * Bump checkout and setup-python to Node.js 24-native versions actions/checkout@v4 and actions/setup-python@v5 run on Node.js 20, which GitHub deprecates June 2, 2026 and removes September 16, 2026. Use the v5 / v6 majors so we never see the deprecation warning. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4 <noreply@anthropic.com>
1 parent 7b3e1fb commit 54b2c08

2 files changed

Lines changed: 111 additions & 0 deletions

File tree

.github/workflows/build.yml

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

README.md

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

3+
[![Build](https://github.com/GPUOpen-Tools/radeon_memory_visualizer/actions/workflows/build.yml/badge.svg)](https://github.com/GPUOpen-Tools/radeon_memory_visualizer/actions/workflows/build.yml)
4+
35
The Radeon Memory Visualizer (RMV) is a software tool that will allow users to analyze video memory usage on AMD Radeon GPUs. RMV will reveal detailed information regarding an application’s video memory consumption and access patterns. This will allow users to understand how memory is being leveraged and open the door to new optimization opportunities.
46

57
## Getting Started

0 commit comments

Comments
 (0)