OpenROAD-flow-scripts icon indicating copy to clipboard operation
OpenROAD-flow-scripts copied to clipboard

Change CI to only run relevant checks

Open Syndace opened this issue 1 year ago • 2 comments

Description

In this pull request, a single line in the README was changed. This triggered all toolflows to run, for a combined SEVEN+ HOURS of computation time. This not only wastes time, but incredible amounts of resources. A few small checks to only build affected designs would save a lot here.

Suggested Solution

No response

Additional Context

No response

Syndace avatar Oct 31 '24 09:10 Syndace

Thoughts on what those checks should be?

maliberty avatar Oct 31 '24 15:10 maliberty

Here is what I would do with GitHub Actions. I am not familiar with Jenkins but I am sure the same general idea can be applied to Jenkins as well.

1. Categorize repo contents

Roughly sort the contents of the repository into three categories, depending on which designs should be built when the files are modified:

Changes that affect all designs:

  • flow/
  • tools/

Changes that affect only one PDK's designs:

  • flow/platforms/<pdk>
  • flow/designs/<pdk>

Changes that don't affect any of the designs:

  • README.md
  • ... everything else

2. Use path filters to only build affected designs

With GitHub Actions, it is possible to specify path filters for actions, such that an action is only executed when a file in one of the specified paths was changed. I would create one step for each PDK and use path filters to only run the step if necessary based on above categorization. That way, #2512 would still build all designs, #2535 would only build ihp-sg13g2 designs, and #2509 wouldn't build any design.

Syndace avatar Oct 31 '24 19:10 Syndace