I'm trying to understand the best practices of Github Actions when splitting a workflow into multiple jobs.
First of all, is it generally a good idea to split a workflow if the steps are logically indepentent?
The most classical example, let's take a project with a build, a test and a deploy step. Is it generally better to split the three steps into three different jobs, even if they can be see as sequential (deploy depends on test that depends on build)? What are the pros and cons of spltting vs keeping a single job?
Also when splitting, is it a good practice to just checkout and rebuild the project entirely? This obviously creates some overhead and potentially some small differences. For instance during build one might use multiple versions of a language, while during deploy only one would be used.
What are the best practices and the rational behind them? Is there any good tutorial on this?