Conversation
742ea29 to
6424b18
Compare
6424b18 to
1ffd170
Compare
|
I think we can get rid of
As long as they are not needed to actually build |
@mathbunnyru which of the tools that I added to the base images are not needed to build Clio? |
I don't think we need |
8f3a096 to
7e31c4f
Compare
bthomee
left a comment
There was a problem hiding this comment.
Since the idea is to make separate tools-clio-X images containing the tools they need, such as bison and flex, should we just remove them already from all three dockerfiles in this PR?
Separately, I know that to enable coverage analysis it is needed to enable -Dcoverage=ON when building. Is it really more efficient to trigger a separate job for just coverage that will need to build from scratch (I don't think we yet have a good way of caching intermediate build artifacts?), as opposed to just running it as part of the regular build+test for just one of the matrix combinations?
For example, in the rippled CI we'd then eventually have something like:
matrix:
mode:
- Debug
- Release
os:
- image: jammy:gcc-12
platform: linux/amd64
runner: ubuntu-24.04
- image: jammy:gcc-12
platform: linux/arm64
runner: ubuntu-24.04-arm
[...]
And in the CI pipeline you just activate the coverage option & upload the report when mode == 'Debug' && image == 'noble:gcc-14' && platform == 'linux/amd64'. Yes, Gcovr would be part of images where it would never be used, but it would avoid launching a completely separate job for just coverage that would use extra compute.
Similarly, setting -Dvoidstar=ON could be done similarly. Would could enable coverage and instrumentation at the same time.
Yes I guess, in the appropriate PR which creates
That is not such a good idea - unit tests run slower when coverage is enabled.
I guess that's a good idea, but such change does not belong here and also,
Can use a similar (but not the same) switch for instrumentation check, but note that we can only use this option with Clang compiler. Also, it might similarly slow down unit tests, just a little. |
For now do not rename the image; it makes more sense after rippled have switched to pre-commit
af94ea0 to
d1e1b29
Compare
Aside from build images, XRPLF projects also use container images with specialized tools, e.g. to enforce code formatting, run sanitizers, run code coverage tools etc. The required images are created by workflows starting with
tools-and ending with the project name e.g.tools-rippled, and are only meant to support specific projects. These images may also contain a complete C++ build environment, if needed.This change adds the image for clang-format.