-
-
Notifications
You must be signed in to change notification settings - Fork 553
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
Sync periodic tests with the push workflow #4172
Conversation
This needs some more work before it will be ready for review. I just pushed it in advance as a reminder to myself for the weekend. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #4172 +/- ##
========================================
Coverage 99.55% 99.55%
========================================
Files 288 288
Lines 21856 21856
========================================
Hits 21759 21759
Misses 97 97 ☔ View full report in Codecov by Sentry. |
Thanks, @kratman – I know see that you mentioned needs some work, but I am not very supportive of these changes in general. Two reasons:
I guess a better way of refactoring this would be to create a |
@agriyakhetarpal I started this because the periodic tests were failing, so I started by syncing the workflows. If things like caching are problematic then I can remove them from this workflow as I go. The goal is to get the periodic tests running smoothly |
Okay, makes sense, thanks for getting this done. I can review after this is ready of course |
This seemed to run locally besides the mseries block which only runs on the main pybamm repo. Not sure if that CI job is even needed anymore now that we have the macos-13 and macos-14 jobs |
I did a quick fix for a lychee issue, but it just exposed more issues with links from tinyurl. I will address those elsewhere |
Remaining lychee issues are fixed by #4219 |
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.
The integration and the unit tests in this workflow should stay in parallel jobs because the run time for a nightly job is not a concern. If they run in serial, it's not possible to find any potential failures in the integration tests if the unit tests fail.
The changes here look good to me. I still feel that the above point applies, though. Creating a reusable workflow with inputs for disabling/enabling etc. that responds to a workflow_call:
event, or separating CI jobs into different files by either OS or the type of the test suite (unit, integration), etc. seem to be the better approaches and are similar to how they are structured in other projects I have looked at
Yeah I figure that making them match brings us closer to using reusable workflows. This makes sure that the same test procedures are used for the regular PRs and the periodic tests. I think the reusable workflow and additional configuration can be revisited in the future. Our infrastructure is already quite complicated so the simpler we can make it the better |
@agriyakhetarpal Is this good to go then? |
I feel the reusable workflow is easy enough to be added here itself before we merge, but if you wish to do it in a follow-up after this PR, I shall approve it |
I created a followup ticket since I suspect that more can be turned into re-usable workflows. For now, this improves the scheduled tests, so I think I can safely revisit the reusable workflows |
Co-authored-by: Agriya Khetarpal <[email protected]>
* Sync workflow * Remove caching * Switch order of commands * Fix lychee * Remove self-hosted runners * Apply suggestions from code review Co-authored-by: Agriya Khetarpal <[email protected]> --------- Co-authored-by: Agriya Khetarpal <[email protected]>
Description
Syncs the test on push workflows with the periodic tests.
Key checklist:
$ pre-commit run
(or$ nox -s pre-commit
) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)$ python run-tests.py --all
(or$ nox -s tests
)$ python run-tests.py --doctest
(or$ nox -s doctests
)You can run integration tests, unit tests, and doctests together at once, using
$ python run-tests.py --quick
(or$ nox -s quick
).Further checks: