Skip to content

Commit 87fd62d

Browse files
committed
Multiple CI and README.md Improvements (backport #324) (#341)
Also removed CI compatibility and mentions of ESP-IDF v4.4 as it's been declared EOL by Espressif. (cherry picked from commit d749ff1) Co-authored-by: Aarav Gupta <aarav@spikonado.com> (cherry picked from commit 5c0322e) # Conflicts: # .github/workflows/ci.yml # .github/workflows/nightly.yml # README.md
1 parent c706796 commit 87fd62d

3 files changed

Lines changed: 50 additions & 60 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,62 +2,44 @@ name: CI
22

33
on:
44
pull_request:
5+
push:
56
branches:
6-
- '**'
7+
- humble
8+
- jazzy
9+
- kilted
10+
- rolling
11+
workflow_call:
12+
inputs:
13+
branch:
14+
description: "Branch to checkout"
15+
required: false
16+
type: string
17+
default: "rolling"
18+
workflow_dispatch:
719

820
jobs:
9-
1021
micro_ros_idf:
1122
runs-on: ubuntu-latest
1223
strategy:
1324
fail-fast: false
1425
matrix:
15-
idf_target: [ esp32, esp32s2, esp32s3, esp32c3, esp32c6, esp32p4]
16-
idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2", "espressif/idf:release-v5.5" ]
17-
exclude:
18-
# Skip IDF v4 + ESP32C6 combination
19-
- idf_target: esp32c6
20-
idf_version: espressif/idf:release-v4.4
21-
# Skip IDF v4 + ESP32-P4 combination
22-
- idf_target: esp32p4
23-
idf_version: espressif/idf:release-v4.4
24-
# Skip IDF v5.2 + ESP32-P4 combination
25-
- idf_target: esp32p4
26-
idf_version: espressif/idf:release-v5.2
26+
idf_target: [esp32, esp32s2, esp32s3, esp32c3, esp32c6, esp32p4]
27+
idf_version: [v5.2, v5.3, v5.4, v5.5]
2728

2829
container:
29-
image: ${{ matrix.idf_version }}
30+
image: "espressif/idf:release-${{ matrix.idf_version }}"
3031

3132
steps:
32-
- uses: actions/checkout@v2
33+
- uses: actions/checkout@v6
3334
with:
3435
path: micro_ros_espidf_component
36+
ref: ${{ inputs.branch || github.ref }}
3537

3638
- name: Dependencies
3739
shell: bash
3840
run: |
39-
apt update
40-
export DEBIAN_FRONTEND=noninteractive
41-
apt install -y git python3-pip
4241
. $IDF_PATH/export.sh
43-
pip3 install catkin_pkg lark-parser colcon-common-extensions empy==3.3.4
44-
# This line avoids the error when using Python < 3.7 https://importlib-resources.readthedocs.io/en/latest/
45-
pip3 install importlib-resources
46-
# this installs the modules also for global python interpreter, needed for IDF v5
47-
# IDF 5.5 uses Python 3.12 which has externally-managed-environment protection
48-
if [ "${{ matrix.idf_version }}" == "espressif/idf:release-v5.5" ]; then \
49-
/usr/bin/pip3 install --break-system-packages catkin_pkg lark-parser colcon-common-extensions empy==3.3.4 importlib-resources; \
50-
else \
51-
/usr/bin/pip3 install catkin_pkg lark-parser colcon-common-extensions empy==3.3.4 importlib-resources; \
52-
fi
53-
54-
# This line can be removed when https://github.com/colcon/colcon-python-setup-py/issues/56 is solved
55-
- name: Patch setuptools
56-
shell: bash
57-
if: matrix.idf_version == 'espressif/idf:release-v4.4'
58-
run: |
59-
. $IDF_PATH/export.sh
60-
pip3 install setuptools==68.1.2
42+
pip install catkin_pkg colcon-common-extensions lark
6143
6244
- name: Build sample - int32_publisher
6345
shell: bash
@@ -95,23 +77,25 @@ jobs:
9577
idf.py set-target ${{ matrix.idf_target }}
9678
idf.py build
9779
98-
- name: Build sample - multithread_publisher
80+
<<<<<<< HEAD
81+
=======
82+
- name: Build sample - int32_publisher_custom_transport_usbcdc
9983
shell: bash
84+
if: matrix.idf_target == 'esp32s2' || matrix.idf_target == 'esp32s3'
10085
run: |
10186
. $IDF_PATH/export.sh
102-
cd micro_ros_espidf_component
103-
make -f libmicroros.mk clean
104-
sed -i 's/DRMW_UXRCE_TRANSPORT=udp/DRMW_UXRCE_TRANSPORT=custom/' colcon.meta
105-
cd examples/multithread_publisher
87+
cd micro_ros_espidf_component/examples/int32_publisher_custom_transport_usbcdc
10688
idf.py set-target ${{ matrix.idf_target }}
10789
idf.py build
10890
109-
- name: EmbeddedRTPS
91+
>>>>>>> 5c0322e (Multiple CI and README.md Improvements (backport #324) (#341))
92+
- name: Build sample - multithread_publisher
11093
shell: bash
11194
run: |
11295
. $IDF_PATH/export.sh
11396
cd micro_ros_espidf_component
11497
make -f libmicroros.mk clean
115-
cd examples/int32_publisher_embeddedrtps
98+
sed -i 's/DRMW_UXRCE_TRANSPORT=udp/DRMW_UXRCE_TRANSPORT=custom/' colcon.meta
99+
cd examples/multithread_publisher
116100
idf.py set-target ${{ matrix.idf_target }}
117-
idf.py build
101+
idf.py build

.github/workflows/nightly.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
name: Nightly
22

33
on:
4-
workflow_dispatch:
5-
inputs:
6-
name:
7-
description: "Manual trigger"
84
schedule:
9-
- cron: '0 4 * * *'
5+
- cron: '0 4 * * *'
6+
workflow_dispatch:
107

118
jobs:
129
micro_ros_idf:
13-
runs-on: ubuntu-latest
1410
strategy:
1511
fail-fast: false
1612
matrix:
13+
<<<<<<< HEAD
1714
branch: [rolling, jazzy, humble]
1815
idf_target: [ esp32, esp32s2, esp32c3, esp32s3, esp32c6, esp32p4]
1916
idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2", "espressif/idf:release-v5.5" ]
@@ -121,3 +118,9 @@ jobs:
121118
cd examples/int32_publisher_embeddedrtps
122119
idf.py set-target ${{ matrix.idf_target }}
123120
idf.py build
121+
=======
122+
branch: [humble, jazzy, kilted, rolling]
123+
uses: ./.github/workflows/ci.yml
124+
with:
125+
branch: ${{ matrix.branch }}
126+
>>>>>>> 5c0322e (Multiple CI and README.md Improvements (backport #324) (#341))

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,30 @@
33

44
# micro-ROS component for ESP-IDF
55

6-
This component has been tested in ESP-IDF v4.4, v5.2, and v5.5 with ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-P4.
6+
This component has been tested in ESP-IDF v5.2, v5.3, v5.4, and v5.5 with ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, and ESP32-P4.
77

88
## Dependencies
99

1010
This component needs `colcon` and other Python 3 packages inside the IDF virtual environment in order to build micro-ROS packages:
1111

1212
```bash
1313
. $IDF_PATH/export.sh
14+
<<<<<<< HEAD
1415
pip3 install catkin_pkg lark-parser colcon-common-extensions
16+
=======
17+
pip3 install catkin_pkg colcon-common-extensions lark
18+
>>>>>>> 5c0322e (Multiple CI and README.md Improvements (backport #324) (#341))
1519
```
1620
1721
## Middlewares available
1822
1923
This package support the usage of micro-ROS on top of two different middlewares:
24+
2025
- [eProsima Micro XRCE-DDS](https://micro-xrce-dds.docs.eprosima.com/en/latest/): the default micro-ROS middleware.
21-
- [embeddedRTPS](https://github.com/embedded-software-laboratory/embeddedRTPS): an experimental implementation of a RTPS middleware compatible with ROS 2.
26+
- [embeddedRTPS](https://github.com/embedded-software-laboratory/embeddedRTPS): an experimental implementation of a RTPS middleware compatible with ROS 2. (CURRENTLY NOT WORKING)
2227
2328
In order to select it, use `idf.py menuconfig` and go to `micro-ROS Settings > micro-ROS middleware`
29+
2430
## Usage
2531
2632
You can clone this repo directly in the `components` folder of your project.
@@ -61,19 +67,16 @@ docker run -it --rm --net=host microros/micro-ros-agent:humble udp4 --port 8888
6167
It's possible to build this example application using the official Espressif [docker images](https://hub.docker.com/r/espressif/idf), following the same steps:
6268
6369
```bash
64-
docker pull espressif/idf:release-v5.2
65-
# Run ESP-IDF container
66-
docker run --name micro-ros-espidf-component-test -it espressif/idf:release-v5.2 bash
70+
docker run --name micro-ros-espidf-component -it espressif/idf:release-v5.4 bash
6771
68-
git clone https://github.com/micro-ROS/micro_ros_espidf_component.git
72+
git clone -b jazzy https://github.com/micro-ROS/micro_ros_espidf_component.git
6973
cd micro_ros_espidf_component/
7074
7175
# Install dependencies
72-
pip3 install catkin_pkg lark-parser colcon-common-extensions
76+
pip install catkin_pkg colcon-common-extensions lark
7377
74-
$IDF_PATH/export.sh
7578
cd examples/int32_publisher
76-
# Set target board [esp32|esp32s2|esp32s3|esp32c3]
79+
# Set target board [esp32|esp32s2|esp32s3|esp32c3|esp32c6]
7780
idf.py set-target esp32
7881
idf.py menuconfig
7982
# Set your micro-ROS configuration and WiFi credentials under micro-ROS Settings

0 commit comments

Comments
 (0)