guidance icon indicating copy to clipboard operation
guidance copied to clipboard

Save time and money on github actions

Open ryanpeach opened this issue 1 year ago • 4 comments

By putting all the "on pull request" jobs into the same workflow, and using "needs" to run them conditionally one after the other, you will save money by only using the GPU/Windows/MacOS runners if all other runners before them pass.

Second, this will fast fail on PR's which have obvious QA flaws, or flaws in the not (needs_credentials or use_gpu) pytests, which make up about 85% of your tests.

Third this better organizes all the runners into one workflow instead of several, making it easier to cancel.

At the cost of making full, successful runs slower. But hopefully you only need those once, at the end of a PR.

ryanpeach avatar Apr 13 '24 01:04 ryanpeach

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 65.27%. Comparing base (5c9776e) to head (6844a0b).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #758      +/-   ##
==========================================
- Coverage   69.53%   65.27%   -4.26%     
==========================================
  Files          54       54              
  Lines        4038     4038              
==========================================
- Hits         2808     2636     -172     
- Misses       1230     1402     +172     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov-commenter avatar Apr 13 '24 01:04 codecov-commenter

I recommend rerunning failures. No code was changed.

ryanpeach avatar Apr 13 '24 02:04 ryanpeach

Thank you for looking into this. Rather than put everything into a single YAML, can I suggest leaving the original YAMLs in place, but tweaking them so that they have workflow_call/inputs rather than their matrix dispatches, and then invoking them from the top level pr_tests.yaml via uses and supply the required arguments (os etc.) via the with clause?

riedgar-ms avatar Apr 16 '24 11:04 riedgar-ms

Interesting idea. I'll look into it.

ryanpeach avatar Apr 16 '24 21:04 ryanpeach