I’m using CircleCI to generate coverage reports for some Rust projects. This used to work really well: the coverage tool, Tarpaulin, comes as a xd009642/tarpaulin docker image and all I needed to make it run was
Does anybody know what changed between last week and today?
Tarpaulin tells people to avoid running tests in containers on TravisCI, to avoid this issue: https://github.com/xd009642/tarpaulin/issues/77. Is there anything similar I can do for CircleCI?
Thanks! While being significantly slower due to building everything from scratch instead of using a pre-made Docker image, the following seems to do the trick:
it seems the time jumped from 1 to 17 minutes. This is because I’m first building the Tarpaulin code coverage tool, and the Rust compiler is rather slow.
Can you build it as a static, self-contained binary, in a different build process? I am not familiar with Rust, but I believe that you can do that with any compilable/linkable language (it is popular with Go, but presumably can be done with C/C++ etc). If you can do this with Rust then you could just commit it to a repo or storage service and then pull it into place.
Yeah, Rust can also be compiled statically. In this case, I believe Tarpaulin is tied to a particular version of Rust so I think I’ll try running is via the same Docker image (xd009642/tarpaulin) as I did originally, but from the machine executor so it can run with full privileges.