Expose exit code of rebuilds#252
Conversation
If the rebuild fails, i.e. due to low storage, missing dependencies or other reason based on the setup, not the software itself, expose that error. As a result, such package is marked as FAIL instead of BAD, helping an investigator to distinguish package issues with build system issues. Signed-off-by: Paul Spooren <mail@aparcar.org>
There was a problem hiding this comment.
Pull request overview
This PR changes the rebuild verification step so that a rebuild backend process that exits unsuccessfully causes the overall rebuild to fail, allowing the system to report an infrastructure/build-system failure (FAIL) instead of treating it like a package reproducibility result (BAD).
Changes:
- Capture the backend process success boolean from
proc::run. - Convert an unsuccessful backend exit into an error (
bail!) so the rebuild is reported as failed.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| let exit_ok = proc::run(bin.as_ref(), &[input_path], opts, log).await?; | ||
| if !exit_ok { | ||
| bail!("Rebuild backend exited with a non-zero status"); | ||
| } |
| }; | ||
|
|
||
| proc::run(bin.as_ref(), &[input_path], opts, log).await?; | ||
| let exit_ok = proc::run(bin.as_ref(), &[input_path], opts, log).await?; |
|
Ignoring the exit code is intentional :) A build may have multiple build ouputs, and e.g. archlinux-repro and debrebuild set exit=1 if at least one of them failed to reproduce. For the other ones we want to record that we could successfully reproduce them, however. If I recall correctly, the status is set to |
|
Okay, thanks for the clarification. I'll close this and check why my OpenWrt scripts resulted in BAD not FAIL |
If the rebuild fails, i.e. due to low storage, missing dependencies or other reason based on the setup, not the software itself, expose that error. As a result, such package is marked as FAIL instead of BAD, helping an investigator to distinguish package issues with build system issues.