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

CI: Build each project independently on Linux and Windows #73

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

carlosperate
Copy link
Collaborator

@carlosperate carlosperate commented Mar 21, 2023

As some projects are failing to build, I thought it might be good addition to the CI to build all projects in a workflow matrix to be able to see the build state of each of one them independently.
One disadvantage of this approach is that if a new algo is added it needs to be added to the list in the CI yaml file as well, but I also added a job to build all, in case the list is not updated.

Also added Windows runs, as sometimes something might work in one OS and fail in the other (fs case sensivitity, or path separators, usually being the most common causes). I didn't add macOS because that added another 48 jobs, and that might be too much.

@carlosperate carlosperate marked this pull request as ready for review March 21, 2023 18:36
Comment on lines +74 to +78
- name: Setup arm-none-eabi-gcc
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: 10.3-2021.10
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Full disclosure, this step uses an Action I maintain, which facilitates Arm GCC installation (with caching, etc), but happy to change it to OS-specific steps if needed.

Copy link
Member

Choose a reason for hiding this comment

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

Nice! Glad to hear know about this action!

@flit
Copy link
Member

flit commented Mar 22, 2023

I have to admit I have mixed feeling about this. It's nice seeing the results per project directly on the main PR page. But, the number of jobs won't scale well, as you said, adding macOS would be probably too many jobs, and the actions yaml has to be updated manually as projects are added.

On first thought, what I think I'd prefer for the ideal situation is one job per OS, but with some scripting that adds an expected-failures list and reports the individual project failures so they show up in GH's checks page. However, given that this project isn't used much (compared to before we could extract algos from CMSIS-Packs), it's way too much to ask.

So, I think I'd actually prefer to just remove the broken projects from projects.yaml until they are fixed. And frankly, there's not much of a reason to fix them. Thanks to your recent fixes, only cc322sf and lpc54018 are still broken.

Could I ask you:

  • Comment out broken projects from projects.yaml.
  • Revert to one job per OS.
  • Add macOS if it's not troublesome.

Thanks!

@carlosperate
Copy link
Collaborator Author

carlosperate commented Mar 23, 2023

Sounds good!
One thing before making the changes:

So, I think I'd actually prefer to just remove the broken projects from projects.yaml until they are fixed. And frankly, there's not much of a reason to fix them. Thanks to your recent fixes, only cc322sf and lpc54018 are still broken.

These are broken with GCC, but they build successfully with uVision (haven't tried IAR). With that in mind do you still want to comment them out?

Is there a way for project generator to not build with with GCC but still build them with the other tools?

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