I’m trying to wrap my head around the entire build farm infrastructure but I’m struggling. Partially as I don’t understand what is and isn’t outdated information anymore.
Is that github documentation still applicable? If so, which index.yaml file should be used so we can test builds for new distros. I’m specifically looking to fix issues for my package on rolling (ubuntu noble amd64).
If you just want to run some package builds locally for debugging (and not the full build farm), the easiest way is, I think, to run bloom locally Building a custom deb package — ROS 2 Documentation: Rolling documentation. You can then directly edit the package files to see what causes an issue.
If you need to build packages isolated to test dependency resolution or check for downloads at build time, I can recommend the GitHub action ros-deb-builder-action.
Thank you for the deb package doc link, I’ll check if that also works for faster debugging for me. For now the local build farm job generation works too.
Well, until I get to the part where I use FetchContent for dependency resolution. And then it breaks again because it seems like the build farm disables any sort of (cmake) external dependency resolution (asked also in buildfarm 'make' 'install' error - #9 by mehermvr ).
to test dependency resolution or check for downloads at build time, I can recommend the GitHub action ros-deb-builder-action.
Is the action meant to be an alternative for the ros build farm binary release process? Because unless I understood it completely wrong, the build farm seems to disable downloads at build (cmake configure) time.
Well, it is not a replacement. The action builds DEB packages in a GitHub workflow and then hosts the Debian repo in your GitHub repo. You can then use it like any other Debian repo.
Can can definitely download assets during the build on the build farm. I have done this with ExternalProject_Add in the past. You can do this too with ros-deb-builder-action if you enable network communication.