- Update workflow to use renamed xahau-patch-conan-post-setup action
- Use 'conan config home' to dynamically find settings.yml location
- Add debug logging to see Conan home contents
- Try 'conan config init' if settings.yml doesn't exist
- This should handle fresh Conan installations
- Check if settings.yml exists before trying to patch it
- Run 'conan profile new default --detect' if needed
- Fixes FileNotFoundError for fresh runners without cache
- Switch to shell: python since PyYAML is pre-installed on Ubuntu
- Move export statement before Python heredoc so env var is available
- Adjust PR matrix logic: only release/candidate PRs get full matrix
- PRs to dev now use minimal matrix (most are feature branches)
[ci-nix-full-matrix]
- Add clang-18-libcxx configuration (6 compiler configs total)
- Generic Conan settings patcher: auto-detects Clang version from compiler-id
- Works for any future Clang version without code changes
- Change minimal matrix to use clang-14 instead of clang-17 (faster)
- Sort Conan version list numerically when adding new versions
[ci-nix-full-matrix]
- Reduces total job time from ~26s to ~7s (72% faster)
- Bypasses ubuntu-latest's 25s toolchain setup overhead
- Container init only takes 3-5s with GitHub's layer caching
- Based on research showing containerized jobs skip host env config
- GCC doesn't recognize -stdlib flag (it's Clang-specific)
- Added dynamic matrix generation for branch-based CI control
- Main branches (dev/release/candidate) run all 5 compiler configs
- Feature branches and PRs run only gcc-13 and clang-17
- [ci-nix-full-matrix] tag forces full matrix on any branch
- Uses inline Python script in matrix-setup job
- Add clang-14-libstdcxx-gcc11 matrix entry for testing
- Remove gcc-14 to prevent Clang from finding it
- Add diagnostic to show which headers Clang will use
- Test both gcc-11 and gcc-13 with clang-14
- Keep clang_gcc_toolchain to control which GCC to install
- Use update-alternatives to set system default GCC
- Remove complex --gcc-install-dir flag from CMAKE_CXX_FLAGS
- Clang automatically uses the default GCC's headers
- Rename force_libstdcpp to stdlib with values libstdcxx/libcxx
- Make stdlib a required enum field with validation
- Update cache keys to be self-documenting (e.g. clang-14-libstdcxx)
- Cleaner, more intuitive configuration flow
* Match unit tests on start of test name (#4634)
* For example, without this change, to run the TxQ tests, must specify
`--unittest=TxQ1,TxQ2` on the command line. With this change, can use
`--unittest=TxQ`, and both will be run.
* An exact match will prevent any further partial matching.
* This could have some side effects for different tests with a common
name beginning. For example, NFToken, NFTokenBurn, NFTokenDir. This
might be useful. If not, the shorter-named test(s) can be renamed. For
example, NFToken to NFTokens.
* Split the NFToken, NFTokenBurn, and Offer test classes. Potentially speeds
up parallel tests by a factor of 5.
* SetHook_test, SetHookTSH_test, XahauGenesis_test
---------
Co-authored-by: Ed Hennis <ed@ripple.com>