Skip to content

Commit 96754eb

Browse files
Amronosmergify[bot]
authored andcommitted
Multiple CI and README.md Improvements (#324)
Also removed CI compatibility and mentions of ESP-IDF v4.4 as it's been declared EOL by Espressif. - (cherry picked from commit d749ff1) # Conflicts: # .github/workflows/nightly.yml
1 parent f5a7959 commit 96754eb

3 files changed

Lines changed: 39 additions & 56 deletions

File tree

.github/workflows/ci.yml

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +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]
16-
idf_version: [ "espressif/idf:release-v5.2" ]
17-
exclude:
18-
# Skip IDF v4 + ESP32C6 combination
19-
- idf_target: esp32c6
20-
idf_version: espressif/idf:release-v4.4
26+
idf_target: [esp32, esp32s2, esp32s3, esp32c3, esp32c6]
27+
idf_version: [v5.2, v5.3, v5.4]
2128

2229
container:
23-
image: ${{ matrix.idf_version }}
30+
image: "espressif/idf:release-${{ matrix.idf_version }}"
2431

2532
steps:
26-
- uses: actions/checkout@v2
33+
- uses: actions/checkout@v6
2734
with:
2835
path: micro_ros_espidf_component
36+
ref: ${{ inputs.branch || github.ref }}
2937

3038
- name: Dependencies
3139
shell: bash
3240
run: |
33-
apt update
34-
export DEBIAN_FRONTEND=noninteractive
35-
apt install -y git python3-pip
3641
. $IDF_PATH/export.sh
37-
pip3 install catkin_pkg lark-parser colcon-common-extensions
38-
# This line avoids the error when using Python < 3.7 https://importlib-resources.readthedocs.io/en/latest/
39-
pip3 install importlib-resources
40-
# this installs the modules also for global python interpreter, needed for IDF v5
41-
/usr/bin/pip3 install catkin_pkg lark-parser colcon-common-extensions importlib-resources
42-
43-
# This line can be removed when https://github.com/colcon/colcon-python-setup-py/issues/56 is solved
44-
- name: Patch setuptools
45-
shell: bash
46-
if: matrix.idf_version == 'espressif/idf:release-v4.4'
47-
run: |
48-
. $IDF_PATH/export.sh
49-
pip3 install setuptools==68.1.2
42+
pip install catkin_pkg colcon-common-extensions lark
5043
5144
- name: Build sample - int32_publisher
5245
shell: bash
@@ -86,7 +79,7 @@ jobs:
8679
8780
- name: Build sample - int32_publisher_custom_transport_usbcdc
8881
shell: bash
89-
if: (matrix.idf_target == 'esp32s2' || matrix.idf_target == 'esp32s3') && matrix.idf_version == 'espressif/idf:release-v5.2'
82+
if: matrix.idf_target == 'esp32s2' || matrix.idf_target == 'esp32s3'
9083
run: |
9184
. $IDF_PATH/export.sh
9285
cd micro_ros_espidf_component/examples/int32_publisher_custom_transport_usbcdc
@@ -103,13 +96,3 @@ jobs:
10396
cd examples/multithread_publisher
10497
idf.py set-target ${{ matrix.idf_target }}
10598
idf.py build
106-
107-
- name: EmbeddedRTPS
108-
shell: bash
109-
run: |
110-
. $IDF_PATH/export.sh
111-
cd micro_ros_espidf_component
112-
make -f libmicroros.mk clean
113-
cd examples/int32_publisher_embeddedrtps
114-
idf.py set-target ${{ matrix.idf_target }}
115-
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, kilted, jazzy, humble]
1815
idf_target: [ esp32, esp32s2, esp32c3, esp32s3, esp32c6]
1916
idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2" ]
@@ -115,3 +112,9 @@ jobs:
115112
cd examples/int32_publisher_embeddedrtps
116113
idf.py set-target ${{ matrix.idf_target }}
117114
idf.py build
115+
=======
116+
branch: [humble, jazzy, kilted, rolling]
117+
uses: ./.github/workflows/ci.yml
118+
with:
119+
branch: ${{ matrix.branch }}
120+
>>>>>>> d749ff1 (Multiple CI and README.md Improvements (#324))

README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33

44
# micro-ROS component for ESP-IDF
55

6-
This component has been tested in ESP-IDF v5.2 with ESP32, ESP32-S2, ESP32-S3, ESP32-C3 and ESP32-C6.
7-
8-
_Note: ESP-IDF v4.4 is supported only in ROS 2 Humble and Jazzy due to Python version incompatibilities._
6+
This component has been tested in ESP-IDF v5.2, v5.3, and v5.4 with ESP32, ESP32-S2, ESP32-S3, ESP32-C3 and ESP32-C6.
97

108
## Dependencies
119

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

1412
```bash
1513
. $IDF_PATH/export.sh
16-
pip3 install catkin_pkg lark-parser colcon-common-extensions
14+
pip3 install catkin_pkg colcon-common-extensions lark
1715
```
1816

1917
## Middlewares available
2018

2119
This package support the usage of micro-ROS on top of two different middlewares:
20+
2221
- [eProsima Micro XRCE-DDS](https://micro-xrce-dds.docs.eprosima.com/en/latest/): the default micro-ROS middleware.
23-
- [embeddedRTPS](https://github.com/embedded-software-laboratory/embeddedRTPS): an experimental implementation of a RTPS middleware compatible with ROS 2.
22+
- [embeddedRTPS](https://github.com/embedded-software-laboratory/embeddedRTPS): an experimental implementation of a RTPS middleware compatible with ROS 2. (CURRENTLY NOT WORKING)
2423

2524
In order to select it, use `idf.py menuconfig` and go to `micro-ROS Settings > micro-ROS middleware`
25+
2626
## Usage
2727

2828
You can clone this repo directly in the `components` folder of your project.
@@ -36,7 +36,7 @@ In order to test a int32_publisher example:
3636
```bash
3737
. $IDF_PATH/export.sh
3838
cd examples/int32_publisher
39-
# Set target board [esp32|esp32s2|esp32s3|esp32c3]
39+
# Set target board [esp32|esp32s2|esp32s3|esp32c3|esp32c6]
4040
idf.py set-target esp32
4141
idf.py menuconfig
4242
# Set your micro-ROS configuration and WiFi credentials under micro-ROS Settings
@@ -63,19 +63,16 @@ docker run -it --rm --net=host microros/micro-ros-agent:kilted udp4 --port 8888
6363
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:
6464

6565
```bash
66-
docker pull espressif/idf:release-v5.2
67-
# Run ESP-IDF container
68-
docker run --name micro-ros-espidf-component-test -it espressif/idf:release-v5.2 bash
66+
docker run --name micro-ros-espidf-component -it espressif/idf:release-v5.4 bash
6967

70-
git clone https://github.com/micro-ROS/micro_ros_espidf_component.git
68+
git clone -b rolling https://github.com/micro-ROS/micro_ros_espidf_component.git
7169
cd micro_ros_espidf_component/
7270

7371
# Install dependencies
74-
pip3 install catkin_pkg lark-parser colcon-common-extensions
72+
pip install catkin_pkg colcon-common-extensions lark
7573

76-
$IDF_PATH/export.sh
7774
cd examples/int32_publisher
78-
# Set target board [esp32|esp32s2|esp32s3|esp32c3]
75+
# Set target board [esp32|esp32s2|esp32s3|esp32c3|esp32c6]
7976
idf.py set-target esp32
8077
idf.py menuconfig
8178
# Set your micro-ROS configuration and WiFi credentials under micro-ROS Settings

0 commit comments

Comments
 (0)