How to optimise github actions in a simple setup-lint-test-e2e-build scenario?

Viewed 20

If we were to use minimal resources, doing these steps would look something like:

setup --- checkout, install fixed versions via cache

then trigger in parallel 1 command to run:

  • lint
  • test
  • e2e

all in parallel.

Unfortunately, with the current options I've found out there, the best scenario I can find is to have a separate workflow file for lint, test, e2e that are called by a main workflow and upon success build an artifact.

The issue with this is.

  • checkout will run 3 times.
  • install command will run 3 times.

Which can be mitigated with caching, but you're still looking at 10-15 seconds extra per job for those steps.

Is there a way to optimise this and still keep the reusable steps?

Even if I would keep everything in 1 giant file, I'd still define the lint, test, e2e steps as separate jobs and not as 1 single step part of a job.

Can we call a 'workflow' and run it in the same environment on the spot somehow?

0 Answers
Related