ci: use dev-container for nuttx targets#24832
Conversation
9dcdfd8 to
f92431d
Compare
mrpollo
left a comment
There was a problem hiding this comment.
Thanks @alexcekay, this helps a lot. I intended to review all of the CI jobs and replace them in one single pass, but I was waiting for an updated container tag.
From now on, it will be best if we only push containers for tagged PX4 releases. However, we should have the flexibility to push a container tag on demand, which is why I made #24821. Hopefully we can get it into main soon, and push a new tag for CI
|
Looking good, let's just be sure to review a few flight test logs. |
|
The flash savings is incredible. |
@dagar anything specific you look out for in flight testing? |
|
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: https://discuss.px4.io/t/px4-dev-call-may-14-2025-team-sync-and-community-q-a/45516/3 |
|
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: https://discuss.px4.io/t/px4-dev-call-may-14-2025-team-sync-and-community-q-a/45516/1 |
8e89b54 to
f92431d
Compare
bd43283 to
6d7b793
Compare
|
I manually built a new dev-container using the newly action of @mrpollo (thanks 👍). Then I updated my change to use that newly built container. The |
sfuhrer
left a comment
There was a problem hiding this comment.
I wouldn't know what's holding us back from getting this in, thanks a lot for pushing this forward @alexcekay !
6d7b793 to
317e73b
Compare
|
I think I can fix the failed build pretty easily, give me a few to push a couple of commits |
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
c29bec7 to
712dc27
Compare
pull from github registry ghcr.io Signed-off-by: Ramon Roche <mrpollo@gmail.com>
d22dcbe to
0a2eadf
Compare
Change
This PR changes all CI workflows that previously used a NuttX container to use the new dev container.
Build all targets was tested here: https://github.com/PX4/PX4-Autopilot/actions/runs/15064605660/job/42346543522?pr=24832
FLASH savings on v5x and v6x are ~44K
Open topics
Tagging strategy
As there is no
latestorstableof the dev container yet, I used the most updated dev container. This would thus require updates when new dev containers are created in the future.Is there a container tagging strategy yet?
Just adding
latestautomatically on each dev container build workflow run is not a complete solution as this would also trigger when creating a RC for an old PX4 release. I see the following options:latestto the highest SemVersionlatestorstabletag for the dev container@mrpollo: Can you manually create a new updated dev container that we can reference in this PR? Or do you guys prefer another strategy.
Checks not working
Fail 1:
https://github.com/PX4/PX4-Autopilot/actions/runs/14971242279/job/42052457639?pr=24832
This seems to be fixable by adding a safe directory. Does not depend on GCC as it also fails when using the old GCC, thus related to the newer git contained in the dev container.
Fix is contained in this PR.
Fail 2:
https://github.com/PX4/PX4-Autopilot/actions/runs/14971242273/job/42052457618?pr=24832
This seems harder to fix, had a look, but don't see the reason yet. Seems to be a problem with the new version of
gcov, so no visible functional problem.This needs to be fixed in a separate PR as it will require a deeper investigation. Thus I did not use the dev container in the checks.yml.
Flash Analysis not working
https://github.com/PX4/PX4-Autopilot/actions/runs/14971242276/job/42052457576?pr=24832
Known problem with some GCC versions, see here: google/bloaty#362
Easiest fix is not displaying
compileunitsbutsymbolsinstead.The output will then look like this, which is as helpful as the previous one in my opinion:
Fix is contained in this PR.