Skip to content

Commit fbde164

Browse files
committed
initial
0 parents  commit fbde164

File tree

8 files changed

+203
-0
lines changed

8 files changed

+203
-0
lines changed

.github/workflows/test.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Test Action
2+
3+
on:
4+
push:
5+
pull_request:
6+
workflow_dispatch:
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Setup Sanitized Qt
15+
id: setup-qt
16+
uses: ./
17+
with:
18+
release: "6.11"
19+
qt-version: "6.11"
20+
qt-flavor: asan
21+
22+
- name: Verify Qt installation
23+
run: |
24+
echo "Qt path: ${{ steps.setup-qt.outputs.qt-path }}"
25+
qmake --version

.pre-commit-config.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
4+
ci:
5+
autoupdate_schedule: monthly
6+
7+
repos:
8+
- repo: https://github.com/pre-commit/pre-commit-hooks
9+
rev: v6.0.0
10+
hooks:
11+
- id: trailing-whitespace
12+
- id: end-of-file-fixer
13+
- id: check-added-large-files
14+
- id: check-case-conflict
15+
- id: check-yaml
16+
args: [--allow-multiple-documents]
17+
- repo: https://github.com/fsfe/reuse-tool
18+
rev: v5.0.2
19+
hooks:
20+
- id: reuse

Changelog

Whitespace-only changes.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Sergio Martins
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

LICENSES/MIT.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
MIT License
2+
3+
Copyright (c) <year> <copyright holders>
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6+
7+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8+
9+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# sanitized-qt-action
2+
3+
A GitHub Action which installs a Qt built with sanitizer support.
4+
5+
Used internally by KDAB for the open-source KD* products CI. Only 6.11 LGPL Qt is supported.
6+
7+
## Example
8+
9+
```yaml
10+
- name: Setup Sanitized Qt
11+
uses: ./
12+
with:
13+
release: "6.11"
14+
qt-version: "v6.11.0"
15+
qt-flavor: asan
16+
```
17+
18+
## release
19+
20+
Only accepts "6.11" currently.
21+
22+
## qt-version
23+
24+
Can be a sha1, a version tag or anything associated with the release.
25+
Only "v6.11.0" supported currently.
26+
27+
## qt-flavor
28+
29+
This accepts `asan`, `tsan`, `debug` or `profile`. `asan` includes `lsan`.
30+
All of them, even `profile` have asserts enabled and are.
31+
32+
## Warning
33+
34+
Use for CI purposes only, as all binaries are Qt developer builds, not suitable for production.
35+
36+
## License
37+
38+
The sanitized-qt-action Software is © Klarälvdalens Datakonsult AB (KDAB), and is
39+
available under the terms of the [MIT](LICENSES/MIT.txt) license.
40+
41+
42+
## About KDAB
43+
44+
sanitized-qt-action is supported and maintained by Klarälvdalens Datakonsult AB (KDAB).
45+
46+
The [KDAB](https://www.kdab.com) Group is a globally recognized provider for software consulting,
47+
development and training, specializing in embedded devices and complex cross-platform desktop
48+
applications. In addition to being leading experts in Qt, C++ and 3D technologies for over
49+
two decades, KDAB provides deep expertise across the stack, including Linux, Rust and modern UI
50+
frameworks. With 100+ employees from 20 countries and offices in Sweden, Germany, USA, France
51+
and UK, KDAB serves clients around the world.
52+
53+
Please visit [the KDAB website](https://www.kdab.com) to meet the people who write code like this.
54+
55+
[Blogs and publications](https://www.kdab.com/resources)
56+
57+
[Videos (Tutorials and more)](https://www.youtube.com/@KDABtv)
58+
59+
[Software Developer Training for Qt, Modern C++, Rust, OpenGL and more](https://training.kdab.com)
60+
61+
[Software Consulting and Development Services for Embedded and Desktop Applications](https://www.kdab.com/services/)

REUSE.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version = 1
2+
SPDX-PackageName = "sanitized-qt-action"
3+
SPDX-PackageSupplier = "<info@kdab.com>"
4+
SPDX-PackageDownloadLocation = "https://www.github.com/KDABLabs/sanitized-qt-action"
5+
6+
#misc
7+
[[annotations]]
8+
path = [
9+
"action.yml",
10+
".pre-commit-config.yaml",
11+
"Changelog",
12+
"README.md",
13+
".github/workflows/test.yml"
14+
]
15+
16+
precedence = "aggregate"
17+
SPDX-FileCopyrightText = "Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>"
18+
SPDX-License-Identifier = "MIT"

action.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: "Setup Sanitized Qt"
2+
description: "Install a sanitizer-enabled Qt build"
3+
4+
inputs:
5+
release:
6+
description: "GitHub release name containing Qt binary assets"
7+
required: true
8+
qt-version:
9+
description: "Version string used in the install directory name"
10+
required: true
11+
qt-flavor:
12+
description: "Sanitizer/build variant: asan, tsan, debug, or profile"
13+
required: true
14+
15+
outputs:
16+
qt-path:
17+
description: "Full path to the Qt installation root"
18+
value: ${{ steps.setup-qt.outputs.qt-path }}
19+
20+
runs:
21+
using: composite
22+
steps:
23+
- name: Install QtGui dependencies
24+
shell: bash
25+
run: |
26+
sudo apt-get update && sudo apt-get install -y \
27+
build-essential libgl1-mesa-dev libgstreamer-gl1.0-0 \
28+
libpulse-dev libxcb-glx0 libxcb-icccm4 libxcb-image0 \
29+
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 \
30+
libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 \
31+
libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb1 \
32+
libxkbcommon-dev libxkbcommon-x11-0 libxcb-xkb-dev \
33+
libxcb-cursor0
34+
35+
- name: Checkout CI tools
36+
uses: actions/checkout@v4
37+
with:
38+
repository: KDABLabs/ci-release-tools
39+
path: ci-release-tools
40+
ref: main
41+
42+
- name: Setup Sanitized Qt
43+
id: setup-qt
44+
shell: bash
45+
run: |
46+
./ci-release-tools/src/build_qt/ci-download-qt.sh ${{ inputs.release }} qt-${{ inputs.qt-version }}-${{ inputs.qt-flavor }}
47+
echo "$HOME/Qt/qt-${{ inputs.qt-version }}-${{ inputs.qt-flavor }}/bin" >> $GITHUB_PATH
48+
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Qt/qt-${{ inputs.qt-version }}-${{ inputs.qt-flavor }}/lib/" >> $GITHUB_ENV
49+
echo "qt-path=$HOME/Qt/qt-${{ inputs.qt-version }}-${{ inputs.qt-flavor }}" >> $GITHUB_OUTPUT

0 commit comments

Comments
 (0)