@Tsanko Stoev No, the semicolon simply produces a list of commands which are still executed in turn, see e.g `man sh` of `man bash` for the explanation of lists
E.g. from `man bash`: "Commands separated by a ; are executed sequentially".
In theory you could run shell tasks in parallel by ending their commands with an "&" and thus sending them immediately to the background but this has little practical usage because their execution will be completely detached from GoCD and you will bw unable to check their exit status, collect artifacts and so on.
GoCD pipeline model is that tasks always run sequentially and jobs (sets of tasks) always run in parallel. I would very much like to optionally control the order of execution of jobs within one stage (for cases one of which I e.g. decribed here
https://groups.google.com/g/go-cd/c/39YZN8ejEig/m/AXLIC3-RBAAJ), but even in its current form the model makes reasonable sense.
@Vijayakumaran Your pipeline looks like your php74 runs are independent bits of work rather than consecutive steps relying on each other. Turn your php74 tasks into jobs and probably you will immediately get what you have in mind. Note, however, that the YAML format is little suitable for working with parallelism. Use the Groovy format where your parallel jobs can be implemented as simple as creating a list of your arguments and iterating over this list when declaring the job element.
As an illustration I attach my own case of running the same set of tests against multiple versions of PostgreSQL in parallel. This is done by using jobs.
пятница, 5 января 2024 г. в 03:26:45 UTC+7, Tsanko Stoev: