-
Notifications
You must be signed in to change notification settings - Fork 51
Add cross-platform GitHub Actions CI #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
…etup Introduce a CI workflow to automate builds and tests for Ubuntu, Windows, and macOS. Includes Vulkan SDK installation and essential dependency configurations for each platform.
…dependency setups across platforms Replaced package-based Vulkan SDK installation on Linux with tar.gz method for better compatibility and control. Updated environment variable configurations on Windows. Refined macOS process by sourcing `tinyobjloader` from GitHub due to unavailability on brew. Added `libyaml-cpp0.7` to Linux dependencies.
… SDK configuration - Build `yaml-cpp` from source on Linux for greater control and flexibility. - Adjust Windows Vulkan SDK variables for consistency and add CMake configuration. - Enhance macOS dependency handling by installing `stb` and `tinyobjloader` from source. - Add Vulkan SDK installation verification on Windows.
…liability and clarity
…ity and update extraction steps accordingly
….gz` - Integrate `ninja-build` as a required dependency for Unix builds. - Update Vulkan SDK download to use `.tar.gz` format for macOS and adjust extraction steps accordingly. - Modify CMake configuration to use Ninja generator for Unix platforms.
… CMake - Drop macOS-specific steps from the GitHub Actions workflow to streamline CI processes. - Enable `CMAKE_CXX_SCAN_FOR_MODULES` in CMake configuration for improved support of C++ module dependencies.
- Moved `CXX_SCAN_FOR_MODULES` property to individual targets (`VulkanCppModule` and chapter names) for improved modularity and control.
…and CMake setup - Introduced `clang` installation in CI workflow for improved C++20 module support. - Updated CMake workflow to use Clang as the default compiler and enabled C++ module dependency scanning globally. - Refined target configurations by adding explicit module source files and consolidating module scanning settings.
…support - Added OS-specific `Cache dependencies` steps for Windows and Ubuntu. - Adjusted cache paths to align with platform-specific build environments.
- Adjust `add_custom_command` in CMake to specify an absolute output path for `slang.spv`.
…d improve handling of individual shader sources in CMake
…oning/building yaml-cpp - Prevent redundant cloning by verifying the existence and content of the yaml-cpp directory. - Ensure the build directory is only created if it doesn't already exist.
- Revert Vulkan SDK archive back to `.tar.gz` format for improved compatibility. - Remove yaml-cpp build process from Ubuntu CI workflow to streamline dependency installation. - Replace manual Vulkan installation with Chocolatey in Windows CI workflow for simplicity. - Introduce improved caching for Vulkan SDK, dependencies, and build artifacts across platforms.
- Update Vulkan SDK to use `.tar.xz` archive format for Linux, updating download and extraction steps. - Replace Chocolatey-based Vulkan installation on Windows with a direct download and silent installer for better control. - Add comprehensive validation of Vulkan SDK installation across platforms, including checks for critical directories and files.
- Replace verbose manual steps with streamlined direct download and silent installation. - Remove redundant installation checks and improve debug output for validation.
- Introduce `.github/workflows/build-antora-doc.yml` to automate Antora documentation builds in CI. - Include `antora-ci-playbook.yml` for specifying site configuration and build parameters. - Configure workflow to trigger on `push`, `pull_request`, and manual dispatch. - Add steps to install dependencies, build the UI bundle, and generate documentation.
SaschaWillems
approved these changes
Jul 3, 2025
Collaborator
SaschaWillems
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍🏻
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.
with Vulkan SDK and dependency setup
Introduce a CI workflow to automate builds and tests for Ubuntu, Windows, and macOS. Includes Vulkan SDK installation and essential dependency configurations for each platform.