-
Notifications
You must be signed in to change notification settings - Fork 152
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
base: main
Are you sure you want to change the base?
Conversation
- name: Setup arm-none-eabi-gcc | ||
uses: carlosperate/arm-none-eabi-gcc-action@v1 | ||
with: | ||
release: 10.3-2021.10 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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!
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 Could I ask you:
Thanks! |
Sounds good!
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? |
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.