Skip to content

Conversation

@Z0rdon
Copy link
Contributor

@Z0rdon Z0rdon commented Jan 14, 2025

Upticks the compatible zephyr version.
The 'zephyr_library_import' needed to be replaced with 'zephyr_link_libraries' to avoid the 'whole-archive' linking behavior (which would consume massive amounts of RAM).
Other miscellaneous fixes were made in order to build.

@pablogs9
Copy link
Member

Hello would you mind updating both workflows to make this compatible with your PR?
https://github.com/micro-ROS/micro_ros_zephyr_module/tree/jazzy/.github/workflows

@Z0rdon
Copy link
Contributor Author

Z0rdon commented Jan 15, 2025

Absolutely- I'll try to have these changes done in the next 24 hours.

@Z0rdon
Copy link
Contributor Author

Z0rdon commented Jan 16, 2025

I have added an attempt to update the workflows.
I haven't used github actions before so I welcome your feedback and corrections.

I was testing locally using 'act', but I was having some difficulty getting the checkout to match the 'ref'. Instead, it appeared that the microROS-zephyr-module repo in the 'act' execution environment always matched whatever was currently checked out locally. I'll have to examine the docs a bit more.

Additionally, I also could not get any workflows to automatically appear in the 'Actions' pane on the Github page of my fork of the project. Are the workflows auto-populated somehow or do I need to perform some manual setup?

Thanks!

@pablogs9
Copy link
Member

CI running, it seems that I need to approve the execution

@Z0rdon
Copy link
Contributor Author

Z0rdon commented Jan 17, 2025

Next attempt to fix the workflows.

As for the issues I previously ran into:
First, I believe my issue when running 'act' relates to bug #2391.
Second, changing the default branch of my fork allowed the workflows to become visible. Alas executing the free runner produces the error "no space left on device" due to the large size of the environment.
I may try to either cut out some of the ubuntu fluff or set up a self-hosted runner so I can iterate locally.

I was surprised the previous ci.yml change didn't build correctly. My local execution runs were successful. Nevertheless, I have made some adjustments to hopefully get the SDK detected correctly.

Copy link
Member

@pablogs9 pablogs9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments

pull_request:
branches:
- '**'
branches-ignore: ["iron", "rolling", "humble"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do not ignore PR to active branches

Comment on lines 23 to 26
- uses: actions/checkout@v4
with:
path: micro_ros_zephyr_module
branch: ${{ matrix.branch }}
ref: jazzy
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nightly is not running all ROS 2 distros as in previous approach

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @pablogs9. Thanks for the feedback.

Currently, I have split the GitHub actions into the following configurations:

  1. The iron/rolling/humble coverage was moved into GitHub actions called "legacy_ci.yml" and "legacy_nightly.yml". These "legacy" actions test the iron/rolling/humble branches against Zephyr versions v3.1.0 and v2.7.2, using the Zephyr docker image based on SDK 0.14.2. [This matches the configuration currently in use by this microROS Zephyr project.]

  2. The jazzy coverage is in "ci.yml" and "nightly.yml". These actions are running with Zephyr version v4.0.99, using the Zephyr docker image based on SDK 0.16.9-rc3.

Is it imperative that the older ROS 2 distros run on the newer Zephyr setup?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @Z0rdon,

Humble is an active distro until May 2027 and Rolling is "newer" than Jazzy.

I'm okay with getting rid of Iron since it is EOL.

Concerning the CI, ideally, we need to have a single workflow that tests the module for all active distros.

@Z0rdon
Copy link
Contributor Author

Z0rdon commented Mar 9, 2025

Hello @pablogs9.
I hope you are well.

Here is my next workflow adjustment attempt. I believe all of the active ROS2 distros are now part of a single workflow, as you requested.

Right now the relevant commits that enable updating the zephyr version are only on the 'jazzy' branch, so the CI will likely only work for this branch until the relevant changes are applied to the other branches.
I have not investigated yet whether these commits can simply be 'cherry picked' to the other active distro branches or if additional work will be required.

@pablogs9
Copy link
Member

Hey @Z0rdon, CI looks good, we are going to do a quick test and will merge ASAP.

Thanks for the contribution.

4ntn added 2 commits March 13, 2025 11:20
Signed-off-by: Antón Casas <antoncasas@eprosima.com>
…r image

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
4ntn added 2 commits March 14, 2025 12:42
Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Signed-off-by: Antón Casas <antoncasas@eprosima.com>
@pablogs9
Copy link
Member

@mergify backport humble rolling

@pablogs9 pablogs9 merged commit 7cbe6da into micro-ROS:jazzy Mar 17, 2025
3 checks passed
@mergify
Copy link
Contributor

mergify bot commented Mar 17, 2025

backport humble rolling

✅ Backports have been created

Details

mergify bot pushed a commit that referenced this pull request Mar 17, 2025
* updates project to work with zephyr v4.0.x

* updating workflows for zephyr v4.0.x

* adds cmake prefix path, changes to ci image

* adds manual trigger to ci workflows

* updates CI workflows for all active ROS2 distros

* Get uart device with Zephyr 4's Devicetree-centric approach

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Tested in v4.1.0 using manual installation on Ubuntu:24.04 base Docker image

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Add v4.1.0 to CI and nightly

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* State SDK used in CI. Restore Z0rdon's info about docker image used.

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
(cherry picked from commit 7cbe6da)

# Conflicts:
#	.github/workflows/nightly.yml
#	modules/libmicroros/microros_transports/serial/microros_transports.c
mergify bot pushed a commit that referenced this pull request Mar 17, 2025
* updates project to work with zephyr v4.0.x

* updating workflows for zephyr v4.0.x

* adds cmake prefix path, changes to ci image

* adds manual trigger to ci workflows

* updates CI workflows for all active ROS2 distros

* Get uart device with Zephyr 4's Devicetree-centric approach

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Tested in v4.1.0 using manual installation on Ubuntu:24.04 base Docker image

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Add v4.1.0 to CI and nightly

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* State SDK used in CI. Restore Z0rdon's info about docker image used.

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
(cherry picked from commit 7cbe6da)

# Conflicts:
#	.github/workflows/nightly.yml
pablogs9 pushed a commit that referenced this pull request Mar 17, 2025
* updates project to work with zephyr v4.0.x (#146)

* updates project to work with zephyr v4.0.x

* updating workflows for zephyr v4.0.x

* adds cmake prefix path, changes to ci image

* adds manual trigger to ci workflows

* updates CI workflows for all active ROS2 distros

* Get uart device with Zephyr 4's Devicetree-centric approach

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Tested in v4.1.0 using manual installation on Ubuntu:24.04 base Docker image

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Add v4.1.0 to CI and nightly

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* State SDK used in CI. Restore Z0rdon's info about docker image used.

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
(cherry picked from commit 7cbe6da)

# Conflicts:
#	.github/workflows/nightly.yml

* Solve merge conflicts

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* colcon ignore rmw_security_common

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Zordon <101883124+Z0rdon@users.noreply.github.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
pablogs9 pushed a commit that referenced this pull request Mar 17, 2025
* updates project to work with zephyr v4.0.x (#146)

* updates project to work with zephyr v4.0.x

* updating workflows for zephyr v4.0.x

* adds cmake prefix path, changes to ci image

* adds manual trigger to ci workflows

* updates CI workflows for all active ROS2 distros

* Get uart device with Zephyr 4's Devicetree-centric approach

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Tested in v4.1.0 using manual installation on Ubuntu:24.04 base Docker image

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Add v4.1.0 to CI and nightly

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* State SDK used in CI. Restore Z0rdon's info about docker image used.

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
(cherry picked from commit 7cbe6da)

# Conflicts:
#	.github/workflows/nightly.yml
#	modules/libmicroros/microros_transports/serial/microros_transports.c

* Solve merge conflicts

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Harmonize device config with other branches
Revert "boards: move board specific configurations (#63)"

This reverts commit 7e07006.

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

* Update ci.yml and nightly.yml

Signed-off-by: Antón Casas <antoncasas@eprosima.com>

---------

Signed-off-by: Antón Casas <antoncasas@eprosima.com>
Co-authored-by: Zordon <101883124+Z0rdon@users.noreply.github.com>
Co-authored-by: Antón Casas <antoncasas@eprosima.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants