This PR refactors our GitHub Actions workflows to streamline the CI process and enhance efficiency. With these checks back in place, the development loop will be faster, and a basis for a more robust release process in an upcoming PR is established.
Unified CI Workflow: A centralized ci_main workflow that orchestrates all CI checks. This workflow leverages reusable components to run OS-specific checks (ci_windows, ci_linux, ci_macos).
Eliminated Duplicate Runs: Prevent redundant workflow executions when a new commit is pushed to an open pull request, the second triggered workflow is automatically skipped.
Job Dependencies: Enhanced job dependencies to ensure a logical build sequence. Matrix library builds are now run after successful unit tests and example compilation. Similarly, Python and Rust bindings are only built after the C++ compilation.
Conditional Execution: Run only the relevant checks based on modified files. This reduces the CI runtime for incremental changes. All checks still run on the main branch to maintain full coverage.
Improved Caching: Added caching for frequently rebuilt dependencies like gtest and dbus, reducing build times, especially in Linux builds.
Note: all changes have been merged into a single commit because the history was unclear.
This PR refactors our GitHub Actions workflows to streamline the CI process and enhance efficiency. With these checks back in place, the development loop will be faster, and a basis for a more robust release process in an upcoming PR is established.
Unified CI Workflow: A centralized ci_main workflow that orchestrates all CI checks. This workflow leverages reusable components to run OS-specific checks (ci_windows, ci_linux, ci_macos).
Eliminated Duplicate Runs: Prevent redundant workflow executions when a new commit is pushed to an open pull request, the second triggered workflow is automatically skipped.
Job Dependencies: Enhanced job dependencies to ensure a logical build sequence. Matrix library builds are now run after successful unit tests and example compilation. Similarly, Python and Rust bindings are only built after the C++ compilation.
Conditional Execution: Run only the relevant checks based on modified files. This reduces the CI runtime for incremental changes. All checks still run on the main branch to maintain full coverage.
Improved Caching: Added caching for frequently rebuilt dependencies like gtest and dbus, reducing build times, especially in Linux builds.
Note: all changes have been merged into a single commit because the history was unclear.