-
Notifications
You must be signed in to change notification settings - Fork 242
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
Extend current GitHub Actions CI (was: No CI running the test suite?) #338
Comments
Absolutely: if you would like to pitch in to create some automation - that would be great. If you do want to create a job or set of jobs, here are a few considerations:
If you - or anyone else - feels like adding tests to improve our quality: that would be great. If you - or anyone else - would like to rewrite/refactor the regression infrastructure: that would also be fantastic. |
@henry2cox let's start with something simple, get that in mergable state and then grow further from there. Pull request #349 is maybe 90% of what we need to get started. I hope you don't feel overwhelmed by the related 3 new issues and 3 side pull requests I had to open: it was the minimum I could do. No rush, and review welcome 🙏 |
How hard is it to artifact/publish (whatever term you like) the 'test.log' file file generated by the For (slightly) later: how hard is it to add another target, to build a coverage report (HTML tree) - and then publish that too? |
@henry2cox not hard, let me offer a pull request for that. Starting after this reply…
I would say "probably not hard" but maybe there is a devil in some detail that is a hard requirement to you in that picture that I'm missing. Could you elaborate? |
Once the vanilla testsuite is running successfully (...after I figure out why the XML generated by python3-coverage seems different than what I see locally..), then I would really like to see a 'make coverage' target that essentially does: In at least one other framework that I have messed around in, the devil in that particular detail was to be sufficiently convincing that the whole HTML hierarchy was published (e.g., no broken links to subdirectory files). Presuming that that works...then the next stage is to pick up data from a previous build or a release tag - and use that in a more detailed report. (There is no particular need to wait until the tests are all running correctly - but the report might be not so helpful unless they are. More to the point: probably don't want to bother to generate coverage data unless the vanilla tests were successful.) |
@henry2cox pull request #357 now. You can check https://github.com/hartwork/lcov-fork/actions/runs/12402870143 with a zip download at the button for what to inspect, if you like. |
FWIW: I figured out how to archive the 'tests' directory - so we can grab all the data to figure out issues. Next step is the coverage report. |
@henry2cox I'm not aware of any easy way for browsable results. Probably a zip download will have to do. |
I found a reference to |
@henry2cox I'm sure it's possible but it's not something I could offer economically at the moment. |
No worries...thanks for all the help to get as far as we got, already. |
@henry2cox glad to hear, glad I could be of help 🙏 |
@henry2cox our runner image offers GCC 12.3.0, 13.3.0, 14.2.0 out of the box — if we were to to use the matrix feature of GitHub Actions to cover all three versions but one, would anything else need patching — what would it need for the test suite to pick it up and use that single given GCC everywhere (outside of hacks like deleting all other available GCC binaries)? |
No patches that I know of offhand. If you are trying to collect cumulative coverage data (for lcov), then you need a few minor hacks to prevent overwriting the results with the next compiler. If you are trying to collect cumulative data for your application: you just have to manage your 'aggregate' steps. (Famous last words, of course... have to try and see what breaks.) Henry |
@henry2cox maybe I should have been more explicit: I wonder about an environment with say GCC commands |
Perhaps I'm coffee deprived: If you want to run your tests with various compilers and want to collect/collate coverage data using lcov
|
@henry2cox let me try a quicker hack then before we have that. Let's see if you like it… |
@henry2cox I didn't expect my idea to perform so poorly (see draft #366). One side effect learning is that tests likely need auto-detect of |
For anyone else reading here: #366 is more promising now. |
Hi!
I noticed the
test
target in theMakefile
but did not find any CI that would run the tests for pushes to Git or new pull requests. Is there a CI that I did not find? A CI would protect against changes that break existing tests without noticing.PS: If you welcome help with a simple CI based on GitHub Actions targeting Linux, please let me know.
Best, Sebastian
The text was updated successfully, but these errors were encountered: