Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updates project to work with zephyr v4.0.x #146

Open
wants to merge 4 commits into
base: jazzy
Choose a base branch
from

Conversation

Z0rdon
Copy link

@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
Author

Z0rdon commented Jan 15, 2025

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

@Z0rdon
Copy link
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
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
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.

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.

2 participants