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

Reusable Zephyr setup GitHub workflow + multiple platform CI testing #64926

Closed
fabiobaltieri opened this issue Nov 7, 2023 · 6 comments
Closed
Assignees
Labels
Architecture Review Discussion in the Architecture WG required RFC Request For Comments: want input from the community

Comments

@fabiobaltieri
Copy link
Member

fabiobaltieri commented Nov 7, 2023

Introduction

Hi, some time ago I've put together a reusable github action to prepare a stock GitHub CI image to build Zephyr projects. It really started as an exercise to learn how to use the workflow, then to figure out how fast it would be to prepare a Zephyr environment for building a single application from scratch, and lastly I added multi-OS support as well.

The thing turns out to work pretty decently and I'm thinking it may be nice for the project to support it officially, to facilitate running a CI on GitHub for end users.

Proposed change

The first proposal is to move over the project under the Zephyr GitHub organization: that is creating a new repository for it under the org and then move over the code from https://github.com/fabiobaltieri/zephyr-setup.

After that I'm thinking we could reuse it for testing:

The two above seems to be running in a reasonable time, and as far as I understand they are free within the GitHub limitations (20 parallel runs or something like that).

Dependencies

The workflow right now has an optional property for specifying the SDK version, I think it'd be nice to be able to pull a "latest" one automatically that pulls whatever was currently used in the Zephyr checkout. This could be done by having the version in the main repository in a known file, so I'd like to propose to do that as well (something like dumping a .github/current-sdk.txt with 0.16.3 or something like that).

@fabiobaltieri fabiobaltieri added the RFC Request For Comments: want input from the community label Nov 7, 2023
@fabiobaltieri fabiobaltieri self-assigned this Nov 7, 2023
@fabiobaltieri
Copy link
Member Author

@fabiobaltieri fabiobaltieri added the Architecture Review Discussion in the Architecture WG required label Nov 23, 2023
@fabiobaltieri
Copy link
Member Author

@carlescufi put this up for Arch WG. Feel free to put it at the bottom of the list, it's a bit of a side project of mine, don't have much time to do major rework at the moment but if we are happy with the current state and some minor tweaks we can go with it.

I think at this stage the request is to create the org repo and move the code there.

@kartben
Copy link
Collaborator

kartben commented Nov 23, 2023

As a random note, it's been working pretty smoothly for me since I added it to my artificial nose project, building with a couple different toolchains and all. https://github.com/kartben/artificial-nose-zephyr/actions

@carlescufi carlescufi moved this from Todo to In Progress in Architecture Review Jan 9, 2024
@stephanosio
Copy link
Member

@fabiobaltieri https://github.com/zephyrproject-rtos/action-zephyr-setup has been created.

@fabiobaltieri
Copy link
Member Author

Thanks @stephanosio, I've done an initial empty push and opened zephyrproject-rtos/action-zephyr-setup#1 to import the files from my original repo.

@fabiobaltieri
Copy link
Member Author

The module repo is up and it's running, v1 is tagged and is running on both the example projects and the main repo push run.

Cheers!

@github-project-automation github-project-automation bot moved this from In Progress to Done in Architecture Review Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Architecture Review Discussion in the Architecture WG required RFC Request For Comments: want input from the community
Projects
Status: Done
Status: Done
Development

No branches or pull requests

3 participants