From d6efd270bcd29bbb22b9a9dafb3308b67e50c20c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Oct 2025 00:30:00 +0000 Subject: [PATCH] Fix CAN node packaging: Include .uavcan.bin files in organized directories Co-authored-by: dakejahl <37091262+dakejahl@users.noreply.github.com> --- .github/workflows/build_all_targets.yml | 4 +++- Tools/ci/package_build_artifacts.sh | 28 +++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_all_targets.yml b/.github/workflows/build_all_targets.yml index ef3b4d1470..ee62c05661 100644 --- a/.github/workflows/build_all_targets.yml +++ b/.github/workflows/build_all_targets.yml @@ -170,4 +170,6 @@ jobs: uses: softprops/action-gh-release@v2 with: draft: true - files: artifacts/*.px4 + files: | + artifacts/*.px4 + artifacts/can_nodes/**/*.uavcan.bin diff --git a/Tools/ci/package_build_artifacts.sh b/Tools/ci/package_build_artifacts.sh index f5ebb73fa0..844a892b39 100755 --- a/Tools/ci/package_build_artifacts.sh +++ b/Tools/ci/package_build_artifacts.sh @@ -1,8 +1,32 @@ #!/bin/bash +# Enable globstar for recursive globbing +shopt -s globstar + mkdir artifacts -cp **/**/*.px4 artifacts/ -cp **/**/*.elf artifacts/ + +# Copy px4 files for regular flight controllers +cp **/**/*.px4 artifacts/ 2>/dev/null || true + +# Copy uavcan.bin files for CAN nodes to named folders +mkdir -p artifacts/can_nodes +for uavcan_bin in **/**/*.uavcan.bin; do + if [ -f "$uavcan_bin" ]; then + # Extract build directory name (e.g., "ark_can-flow_default" from "build/ark_can-flow_default/...") + build_dir=$(echo "$uavcan_bin" | sed 's|build/\([^/]*\)/.*|\1|') + + # Create subdirectory for this CAN node + can_node_dir="artifacts/can_nodes/$build_dir" + mkdir -p "$can_node_dir" + + # Copy the uavcan.bin file with original name + cp "$uavcan_bin" "$can_node_dir/" + + echo "Packaged CAN node firmware: $uavcan_bin -> $can_node_dir/" + fi +done + +cp **/**/*.elf artifacts/ 2>/dev/null || true for build_dir_path in build/*/ ; do build_dir_path=${build_dir_path::${#build_dir_path}-1} build_dir=${build_dir_path#*/}