ci: Speed up rpm debuginfo package generation#7529
Conversation
cfc80fb to
497fb2a
Compare
|
This PR has conflicts, please resolve them in order for the PR to be reviewed. |
497fb2a to
a61534e
Compare
|
All conflicts have been resolved. Assigned reviewers can now start or resume their review. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #7529 +/- ##
=========================================
- Coverage 82.0% 82.0% -0.0%
=========================================
Files 1009 1009
Lines 76779 76779
Branches 8937 8937
=========================================
- Hits 62976 62973 -3
- Misses 13794 13797 +3
Partials 9 9 🚀 New features to boost your workflow:
|
mathbunnyru
left a comment
There was a problem hiding this comment.
Approved, if it will take less time in CI (please, check, when it's done)
mathbunnyru
left a comment
There was a problem hiding this comment.
Unfortunately, doesn't work:
PR / package / xrpld-rhel-gcc-release-amd64 (pull_request)Successful in 12m
a61534e to
d1fd10e
Compare
I saw that. I removed the knobs but I removed the thing that made it work also. Re-running. |
d1fd10e to
3961412
Compare
3961412 to
7740ee6
Compare
|
|
||
| %undefine _debugsource_packages | ||
| %debug_package | ||
| %global _binary_payload w.ufdio |
There was a problem hiding this comment.
Uncompressed payload is unconditional — shipped RPMs will be much larger. Gate on a CI flag or remove if not needed for all builds:
| %global _binary_payload w.ufdio | |
| %{?ci_build:%global _binary_payload w.ufdio} |
|
This brings RPM package validation into the same rough size/time class as Debian. For context:
The old RPM artifact was smaller, but it got there by spending about 10 extra minutes optimizing/compressing debug-package payloads for a disposable CI artifact. Debian is already the practical comparison point here: DWZ optimization is not viable there for Operationally, the debug-symbol packages are mostly useful when we need to analyze coredumps. The download data supports optimizing this path for CI latency rather than RPM debug artifact size.
Some of the debian debug downloads were us also. So for PR validation, I think it is reasonable to optimize for fast proof that the package builds rather than spending another ~10 minutes minimizing a short-lived RPM debug artifact that is rarely consumed. |
|
Almost as fast as deb now |
There was a problem hiding this comment.
Pull request overview
This PR aligns RPM packaging behavior with the DEB packaging path by disabling the dwz debuginfo optimization step (which can be slow), aiming to reduce overall CI package build time.
Changes:
- Update the RPM spec to disable
dwzduring debuginfo generation. - Adjust RPM payload settings to speed up RPM/debuginfo packaging.
- Update packaging documentation and cspell dictionary to reflect the new RPM settings.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
package/rpm/xrpld.spec |
Disables dwz for debuginfo generation and adjusts RPM payload settings for faster packaging. |
package/README.md |
Documents the RPM packaging invocation and notes the new debuginfo/payload behaviors. |
cspell.config.yaml |
Adds ufdio to the project wordlist to avoid spellcheck noise from the new RPM macro. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 1. Creates the standard `rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}` tree inside the build directory. | ||
| 2. Copies `xrpld.spec` and all source files (binary, configs, service files) into `SOURCES/`. | ||
| 3. Runs `rpmbuild -bb --define "xrpld_version ..." --define "pkg_release ..."`. The spec uses manual `install` commands to place files. | ||
| 3. Runs `rpmbuild -bb --define "xrpld_version ..." --define "xrpld_release ..."`. The spec uses manual `install` commands to place files, disables `dwz`, and writes uncompressed RPM payloads while generating debuginfo packages. |
The deb package already skips the dwz debug optimization step as it takes a long time.
This change adds the analogous switch to reduce RPM package build time to be on par with deb package generation.