I have several (source) repositories. Whenever a commit is pushed to one of theses repositories a task has to be triggered which builds the sources and push the result into another (target) repository.
The source repositories are hosted in Phabricator. The target repository is hosted separately. Jenkins has access to all repositories.
What I've done is:
Make HTTP Request
build step calling JenkinsHow can I ensure that all pushed commits of one source repository are build in the right order? And how could I parallelize the builds between the several source repositories?
What I like to avoid is a (huge) bunch of setup on Jenkins and/or Harbormaster for each source repository.
The short answer is Herald/Harbormaster ensure that the process order is always equal to the order of the commits in the repository. To prevent a non-sequentially processing of the commits you need to use the build step Wait for Previous Commits to Build
as a dependency for your build step.
To parallelize the processing between several repositories there is no other possibility beside multiple build plans where each of them is responsible for a specific (disjunct) set of repositories. But they all could use a one job in Jenkins, because the Phabricator would be the only one in charge for the process order.
See also https://secure.phabricator.com/Q453.