Skip to content

Conversation

dakejahl
Copy link
Contributor

@dakejahl dakejahl commented Oct 10, 2025

Solved Problem

Upload .uavcan.bin binaries for cannode targets and do not upload their .px4 files.

Fixes #25621
Fixes #25622

Changelog Entry

For release notes:

ci: build targets: package cannode artifacts into artifact/cannode/<target>/*.uavcan.bin

Test coverage

Tested locally that the artifacts/ directory is structured accordingly.

Context

Copilot tried and got close, but Claude had to save the day
#25705

@dakejahl dakejahl changed the title ci: build targets: package cannode artifacts into artifact/cannode/<t… ci: build targets: package cannode artifacts Oct 10, 2025
@dakejahl dakejahl self-assigned this Oct 10, 2025
…arget>/*.uavcan.bin

Releases were include the .px4 file for cannodes. This file cannot be flashed and instead the .uavcan.bin file must be used. Updated build script to only package .px4 binaries for non-cannodes and to only package .uavcan.bin binaries for cannodes.
@dakejahl dakejahl force-pushed the pr-cannode_release_artifacts branch from 9edc9fa to 565bf31 Compare October 10, 2025 07:08
@AlexKlimaj
Copy link
Member

Build all targets was failing due to duplicate "files" definitions.

@dakejahl dakejahl requested review from AlexKlimaj and removed request for AlexKlimaj October 14, 2025 03:58
Copy link

No flaws found

Copy link
Contributor

@mrpollo mrpollo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package script looks like it's doing what you intended. However, I don't know if what you are trying to do is the best way to distribute these assets. I left some comments.

files: artifacts/*.px4
files: |
artifacts/*.px4
artifacts/cannode/**/*.uavcan.bin
Copy link
Contributor

@mrpollo mrpollo Oct 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these files also be uploaded to S3?

mkdir artifacts
cp **/**/*.px4 artifacts/
cp **/**/*.elf artifacts/
mkdir -p artifacts/cannode
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having a cannode directory seems redundant to me, but I don't understand how flashing a cannode works. Is this the tree you intended to create?

❯ tree .
.
├── ark_can-flow-mr_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_can-flow-mr_canbootloader.elf
├── ark_can-flow-mr_canbootloader.px4
├── ark_can-rtk-gps_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_can-rtk-gps_canbootloader.elf
├── ark_can-rtk-gps_canbootloader.px4
├── ark_cannode_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_cannode_canbootloader.elf
├── ark_cannode_canbootloader.px4
├── ark_f9p-gps_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_f9p-gps_canbootloader.elf
├── ark_f9p-gps_canbootloader.px4
├── ark_teseo-gps_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_teseo-gps_canbootloader.elf
├── ark_teseo-gps_canbootloader.px4
├── ark_x20-gps_canbootloader
│   ├── airframes.xml
│   ├── parameters.json
│   ├── parameters.json.xz
│   └── parameters.xml
├── ark_x20-gps_canbootloader.elf
├── ark_x20-gps_canbootloader.px4
└── cannode
    ├── ark_can-rtk-gps
    │   └── 82-1.16.56e94ece.uavcan.bin
    ├── ark_cannode
    │   └── 83-1.16.56e94ece.uavcan.bin
    ├── ark_f9p-gps
    │   └── 90-1.16.56e94ece.uavcan.bin
    └── ark_x20-gps
        └── 89-1.16.56e94ece.uavcan.bin

12 directories, 40 files

files: artifacts/*.px4
files: |
artifacts/*.px4
artifacts/cannode/**/*.uavcan.bin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you also need to upload to S3?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, this won't create a cannode directory in the release assets, it will only upload the *.uavcan.*bin files next to the *.px4 files

@dakejahl
Copy link
Contributor Author

Need to look into the code to see if we can rename the cannode binaries. The binary names are cryptic and having binaries with names like 90-1.16.56e94ece.uavcan.bin in the github release assets won't be much help for users who are looking for "ark flow firmware"

@dakejahl dakejahl marked this pull request as draft October 15, 2025 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] CAN Nodes dont show a correct hash [Bug] Released for CAN nodes are the wrong binaries

3 participants