Some tasks in your build may be able to run at the same time instead of sequentially. For example, in a Node.js project, you could run lint tasks and unit test tasks at the same time since they are independent of each other and make your pipeline faster.
Let's take an example set of tasks and see how to introduce parallelism:
.sail.yml with tasks only
Above we have a set of tasks that do some checks and then build and deploy our application. Since both
test are dependent on
install, it makes sense to let
install run first. But after that, we can start
test in parallel. If both these are successful, then we could move on to the
sail:parallel is a special workflow item that makes any tasks inside it run at the same time. All tasks will run to completion but if any fail then the whole pipeline will fail and it will not move onto the next item in the workflow.
Any tasks run within sail:parallel will receive a snapshot of the current workspace and at this time can not persist anything back to this workspace. Sequential tasks always have full write capability to the workspace throughout the lifecycle of the pipeline.