-
Notifications
You must be signed in to change notification settings - Fork 1.3k
add options for workflows with strip and debug symbols #1801
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
base: master
Are you sure you want to change the base?
Conversation
|
My personal view would be for simplicity, just two options:
This way:
If each build run took 60 seconds, I wouldn't care; with potential hours, it matters. Definitely open to input. |
|
Job failed due to disk space. Unfortunately, I don't have permissions to restart the failed jobs. Can I trouble you @cmuellner ? |
|
FWIW, I ran an experiment. I downloaded one of the most recent tar archive artifact from a nightly. And then I just ran strip on every file. Yes, it could have been more efficient - validate that it is the right file type, etc., no point in running $ docker run -it --rm -v $(pwd):/pwd ubuntu:24.04
# apt update -y && apt install -y binutils
# cd /pwd
# find . -type f -exec strip {} \;When I was done, all of the executables were marked as stripped (no debug symbols), and the whole thing had shrunk dramatically. That took about a minute. I did not Do we want to go down that path for this? Something like:
I don't mind doing that, if we think it is valid. |
|
If you don't want to have four possible stripping/debugging combinations, you could use a |
|
Regarding declare-stripping-at-configure vs. post-build stripping with |
In that case, I will see if I can update the PR to do it post-build, as it is orders of magnitude more efficient.
From a user perspective, we can leave it the way it is, via Or we can have a make option for it. We already run I am going to try to get the PR to do it the efficient way, but also run some experiments locally. |
fba0e08 to
f1135ad
Compare
|
OK, I redid the CI. I couldn't use What I did:
I think this hits the requirement nicely. Would be good to get your input. |
|
Ran into no space issues again. Aren't GitHub Actions runners fun? Can you restart please @cmuellner ? |
|
I cannot tell why |
The logs say:
I restarted all failed jobs. |
|
Thanks |
f1135ad to
65827e0
Compare
|
Some errors in my action file. Fixed and pushed, we can let it run and see. |
Signed-off-by: Avi Deitcher <[email protected]>
65827e0 to
bf76104
Compare
|
They all passed, CI is green! 😄 |
|
Good morning @cmuellner . How is this approach? Anything you need changed on it? |
Attempts to address the conversation beginning with this comment.
Provides options to reusable workflows to build:
By default, it behaves like today: with debug symbols, without stripping binaries. However, if you pass it options, for example
[true, false]for each, then it will build both with and without. That means you could have up to 4 distinct build artifacts: debug+not stripped; not debug+not stripped; not debug+stripped; debug+stripped. The last doesn't make much sense, as strip usually removes debug symbols, but is an inevitable result of a 2x2 matrix of options.We could simplify this by just having two options: debug and not debug, which removes the overwhelming majority of size of the binaries, as pointed out by @TommyMurphyTM1234 in this comment. Or we could just have 2, stripped (no debug+ stripped) and not stripped (with full debug).
The downside to the way I implemented this, is that you end up with 4 possible builds. But for any stripped options (debug+stripped, no debug+stripped), you might as well reuse the previous build and just strip symbols. That would take about a minute, rather than the hours of build.
PR is open for discussion, so we can find the best way.