Add ESP32-P4 support for Micro-ROS (Humble) #327
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| branches: | |
| - '**' | |
| jobs: | |
| micro_ros_idf: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| idf_target: [ esp32, esp32s2, esp32s3, esp32c3, esp32c6, esp32p4] | |
| idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2", "espressif/idf:release-v5.5" ] | |
| exclude: | |
| # Skip IDF v4 + ESP32C6 combination | |
| - idf_target: esp32c6 | |
| idf_version: espressif/idf:release-v4.4 | |
| # Skip IDF v4 + ESP32-P4 combination | |
| - idf_target: esp32p4 | |
| idf_version: espressif/idf:release-v4.4 | |
| # Skip IDF v5.2 + ESP32-P4 combination | |
| - idf_target: esp32p4 | |
| idf_version: espressif/idf:release-v5.2 | |
| container: | |
| image: ${{ matrix.idf_version }} | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| path: micro_ros_espidf_component | |
| - name: Dependencies | |
| shell: bash | |
| run: | | |
| apt update | |
| export DEBIAN_FRONTEND=noninteractive | |
| apt install -y git python3-pip | |
| . $IDF_PATH/export.sh | |
| pip3 install catkin_pkg lark-parser colcon-common-extensions empy==3.3.4 | |
| # This line avoids the error when using Python < 3.7 https://importlib-resources.readthedocs.io/en/latest/ | |
| pip3 install importlib-resources | |
| # this installs the modules also for global python interpreter, needed for IDF v5 | |
| # IDF 5.5 uses Python 3.12 which has externally-managed-environment protection | |
| if [ "${{ matrix.idf_version }}" == "espressif/idf:release-v5.5" ]; then \ | |
| /usr/bin/pip3 install --break-system-packages catkin_pkg lark-parser colcon-common-extensions empy==3.3.4 importlib-resources; \ | |
| else \ | |
| /usr/bin/pip3 install catkin_pkg lark-parser colcon-common-extensions empy==3.3.4 importlib-resources; \ | |
| fi | |
| # This line can be removed when https://github.com/colcon/colcon-python-setup-py/issues/56 is solved | |
| - name: Patch setuptools | |
| shell: bash | |
| if: matrix.idf_version == 'espressif/idf:release-v4.4' | |
| run: | | |
| . $IDF_PATH/export.sh | |
| pip3 install setuptools==68.1.2 | |
| - name: Build sample - int32_publisher | |
| shell: bash | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component/examples/int32_publisher | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build | |
| - name: Build sample - low_consumption | |
| shell: bash | |
| if: matrix.idf_target != 'esp32c3' && matrix.idf_target != 'esp32s3' && matrix.idf_target != 'esp32c6' && matrix.idf_target != 'esp32p4' | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component/examples/low_consumption | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build | |
| - name: Build sample - handle_static_types | |
| shell: bash | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component/examples/handle_static_types | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build | |
| - name: Build sample - int32_publisher_custom_transport | |
| shell: bash | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component | |
| make -f libmicroros.mk clean | |
| sed -i 's/DRMW_UXRCE_TRANSPORT=udp/DRMW_UXRCE_TRANSPORT=custom/' colcon.meta | |
| cd examples/int32_publisher_custom_transport | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build | |
| - name: Build sample - multithread_publisher | |
| shell: bash | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component | |
| make -f libmicroros.mk clean | |
| sed -i 's/DRMW_UXRCE_TRANSPORT=udp/DRMW_UXRCE_TRANSPORT=custom/' colcon.meta | |
| cd examples/multithread_publisher | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build | |
| - name: EmbeddedRTPS | |
| shell: bash | |
| run: | | |
| . $IDF_PATH/export.sh | |
| cd micro_ros_espidf_component | |
| make -f libmicroros.mk clean | |
| cd examples/int32_publisher_embeddedrtps | |
| idf.py set-target ${{ matrix.idf_target }} | |
| idf.py build |