-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI improvements #173
CI improvements #173
Conversation
99e7ffb
to
2894fc9
Compare
2894fc9
to
5e572af
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job! It might come in very handy!
Also, if I understand the binary build, we don't strip the binary. We can try to set the strip
flag to true
, it lightens the produced binary by removing all unnecessary symbols and debug informations.
[profile.release]
strip = "debuginfo"
Furthermore, I think we can activate LTOs (Link Time Optimizations) in rust to lighten the binary even more.
Quickly, LTOs allow the compiler to keep functions information aside and the linker can optimize even more thanks to those informations becaue he's got all final compiled files to deal with. In the cases that some short functions are in libraries (which might often be the case in all the externals crates we use), the compiler will never inline them because they need to be used by the binary, but the linker can see it when it's got all compiled files, and it can inline it in the end.
It's useful to get rid of some more symbols but we need to know that it actually slows down the compile process by some important factor.
9331071
to
990744a
Compare
990744a
to
d49e7d5
Compare
Hey thanks, you are totally right 😉 The binaries are already stripped and LTO is already activated, you can see this in the workspace's [profile.release]
lto = true
strip = true
[profile.dev]
strip = "debuginfo"
incremental = false |
2ff393c
to
819a7e0
Compare
819a7e0
to
66ef1a7
Compare
--bins
latest_build
release packages). Tags still trigger a release build