Conversation
This refactor is based on the idea that CI for beman repositories
should only contain configuration, and the logic powering the CI
should live in reusable workflow files that can be deduplicated using
infra (the move to infra will happen in a follow-on commit).
After this commit, CI for exemplar is configured via a JSON file whose
contents are processed by the new reusable-beman-build-and-test.yml
workflow file.
For the GCC and Clang builds, the configuration dispatches to the new
containers provided by bemanproject/infra-containers. Otherwise, it
uses GitHub runners.
The configuration chosen for exemplar is intended to provide a sane
default for other projects. Most configurations only run a default
build, in release mode so that the tests execute quickly. Debug and
sanitizer builds are performed on the latest compiler version and C++
standard for each compiler, to ensure the most robust results.
Although a reflection build is not provided here, I've tested it using
the following configuration:
"clang-p2996": [
{ "versions": ["trunk"],
"tests": [
{ "cxxversions": ["c++26"],
"tests": [{"stdlibs": ["libc++"], "tests": ["Release.-DCMAKE_CXX_FLAGS='-freflection-latest'"]}]
}
]
}
],
This uses the ability to provide custom parameters to CMake after the
'.' separator to provide the reflection flag.
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.
This refactor is based on the idea that CI for beman repositories should only contain configuration, and the logic powering the CI should live in reusable workflow files that can be deduplicated using infra (the move to infra will happen in a follow-on commit).
After this commit, CI for exemplar is configured via a JSON file whose contents are processed by the new reusable-beman-build-and-test.yml workflow file.
For the GCC and Clang builds, the configuration dispatches to the new containers provided by bemanproject/infra-containers. Otherwise, it uses GitHub runners.
The configuration chosen for exemplar is intended to provide a sane default for other projects. Most configurations only run a default build, in release mode so that the tests execute quickly. Debug and sanitizer builds are performed on the latest compiler version and C++ standard for each compiler, to ensure the most robust results.
Although a reflection build is not provided here, I've tested it using the following configuration:
This uses the ability to provide custom parameters to CMake after the '.' separator to provide the reflection flag.