ci: add Linux CI workflow with self-hosted Docker runner#11
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a Linux CI pipeline that runs on a self-hosted, Docker-based GitHub Actions runner, including new Linux CMake presets and FASTBuild cache trimming to support faster, repeatable CI builds on dedicated infrastructure.
Changes:
- Added Linux FASTBuild CMake configure/build presets (
linux-base,linux-ci) and a Linux build preset with FASTBuild cache auto-trimming. - Introduced a new self-hosted Linux CI GitHub Actions workflow that installs CMake/FASTBuild/vcpkg and builds via the new preset.
- Added a Docker Compose definition for running the self-hosted GitHub runner container with mounted caches and resource limits.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
docker/docker-linux-ci.yml |
Defines the self-hosted GitHub runner container, mounts cache volumes, and sets runner labels/config. |
CMakePresets.json |
Adds Linux CI presets and applies FASTBuild cache trimming options across build presets. |
CMakeLists.txt |
Adds MSVC /permissive- to enforce stricter standard conformance. |
.github/workflows/linux-ci.yml |
Implements the Linux CI workflow on a self-hosted runner, including toolchain setup and vcpkg installs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ee004f2 to
80e9a05
Compare
- migrate KDDockWidgets and Qt usage to vcpkg and remove vendored KDDockWidgets submodule - update CMake presets/workflows for clang-cl on Windows and FASTBuild-based Linux CI - add Linux self-hosted CI pipeline and align CodeQL workflow to Linux toolchain - apply Qt/FFmpeg API compatibility updates and broad warning cleanup for modern compilers - update docs/scripts to match the new dependency and CI model Squashed commit history (origin/main..previous HEAD): 0602b3e ci: add Linux CI workflow and presets for self-hosted Docker runner 4159524 fix: robust FASTBuild install and restrict self-hosted to internal PRs 170eb57 ci: use clang for Linux CI, add overlay triplet for vcpkg b39f4b3 fix: install clang-20 via LLVM apt repo for C++20 concepts support 53accbf fix: install g++ for libstdc++ headers, verbose FASTBuild download 2e167ff fix: Linux FASTBuild binary is lowercase (fbuild not FBuild) e466bd6 fix: install libstdc++-14-dev for C++20 headers on Ubuntu 20.04 b2dddca ci(linux): switch Docker image to ubuntu-noble (24.04) 80e9a05 ci(linux): add nasm for ffmpeg build 4e1a3bf fix(linux): set CMAKE_SYSTEM_PROCESSOR in clang toolchain f18e708 fix(linux): separate FASTBuild cachetrim from build step a8cabf9 fix(ci): remove CMAKE_COMPILE_WARNING_AS_ERROR from CI presets 09b8bdf fix: suppress -Wgnu-line-marker for FASTBuild+clang builds 6a374ae fix(linux): add fontconfig, freetype, EGL dev packages for Qt6 linking e2d17f0 fix: FASTBuild build preset and deprecated Qt API cleanup b1db3d3 fix: migrate deprecated Qt6 and FFmpeg APIs to modern equivalents c335fc3 fix: replace foreach with range-for on std::vector containers b96fcb9 fix: replace remaining foreach on std::vector with range-for 8a133e9 fix: replace foreach on std::vector in header files f1bb435 fix: replace all remaining foreach on std::vector with range-for cdd0689 fix: replace foreach on TimeRangeList with range-for e7b7dc5 fix: replace foreach on std::vector<NodeKeyframe*> with range-for 6e1fce1 fix: handle OIIO USTRINGHASH enum, enable MSVC C4062 7357076 refactor: replace all foreach with range-for, upgrade MSVC warnings 35c8853 build: switch to clang-cl on Windows with C++23 437d337 build: use QT_DISABLE_DEPRECATED_BEFORE, fix deprecated Qt6 APIs 1facf69 Migrate Qt and KDDockWidgets to vcpkg e8aefb2 Fix linux vcpkg host triplet setup 974a8d8 Fix linux libxcrypt dependency in CI 3e16799 Fix dbus configure on linux clang triplet db0f710 install bison 380e4c6 add install flex 0dc94d3 qtbase linux ci ec34aab Disable qt Android autodetect on linux triplet 44bb0df Fix Linux clang triplet cross-compile mode 961bdae ci: fix linux kddockwidgets Qt tools path 3af61a9 ci: simplify linux triplet usage 05cbeb5 build: remove obsolete linux chainload toolchain e826146 ci: remove linux Qt tools workaround 8906b7f ci: add X11 SM dev deps for qtbase fb4df6b build: preload Qt6WidgetsPrivate for kddockwidgets 532469e build: import KDBindings before KDDockWidgets 922b249 build: import nlohmann_json for KDDockWidgets 42a5231 ci: use dynamic Linux triplet with FASTBuild 24a6a78 build: remove obsolete Qt6WidgetsPrivate preload 3cc52ea ci: disable auto-cancel for workflow concurrency 3659e82 ci: set default werror and move CodeQL to linux a3adc64 add scan depth fa4e142 pause codeql.yml Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use a snapshot of selected_nodes_ when finding deselected nodes to preserve old foreach copy semantics and avoid in-loop mutation during range-for iteration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
fa4e142 to
887e361
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Linux CI build using a self-hosted Docker runner on a dedicated server.
Changes
CMakePresets.json
CMakeLists.txt
.github/workflows/linux-ci.yml
docker/docker-linux-ci.yml
Runner Setup