jsk-ros-pkg / jsk_aerial_robot

The platfrom for aerial robot (e.g. general multirotor, hydrus, di, dragon, etc)
http://www.jsk.t.u-tokyo.ac.jp/index-j.html
34 stars 34 forks source link

[Spinal][Github Action] Automatic Spinal firmware build flow by Github Action. #631

Open sugihara-16 opened 3 weeks ago

sugihara-16 commented 3 weeks ago

What is this

This PR provides a Github Action workflow that automatically builds Spinal firmware by Github Action.

Details

This workflow runs in a docker image where ros noetic and STM32CubeIDE are installed. Dockerfile is now located here and you can download the built image with the following command: $ docker pull ghcr.io/sugihara-16/docker_test/stm32cubeide_1.8.0_build_env:2024-11-03 Additionally, you can find example of generated files here.

tongtybj commented 3 weeks ago

Great!

I realize that another very importnat purpose of this action is to check the compile error while building the project. Is it possible to transfer the build error (https://github.com/jsk-ros-pkg/jsk_aerial_robot/pull/631/files#diff-7de46c59a974698097aa71e64acc133be04328b5fe7334f0330e113c0563f122R52-R60) to the action?

sugihara-16 commented 3 weeks ago

Yes, it's already possible. If STM32CubeIDE succeeds in the build process, it outputs exit code 0, while it outputs exit code 1 in the case of build failure. Github Action can detect these exit codes and determine whether the workflow goes well. Please check this by pushing some invalid codes.

tongtybj commented 3 weeks ago

One more question:

how did you get en.st-stm32cubeide_${STM32CUBE_VERSION}_amd64.deb_bundle.sh.zip in Dockerfile: https://github.com/sugihara-16/Spinal_build_docker_image/blob/master/Dockerfile#L60

sugihara-16 commented 3 weeks ago

I made the directory with following structure:

Project_directory - Dockerfile
_ stm32cubeide.zip

When you build Docker image, you can load stm32cubeide.zip by specifying “build context” like docker build "image_name" -f Dockerfile .