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:
- A project in Jenkins which does a build job through a parametrized script
- A build plan in Harbormaster with a Make HTTP Request build step calling Jenkins
- A Herald rule which triggers the Harbormaster build plan whenever a commit is pushed to one of the source repositories
How 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 would be a (huge) bunch of setup on Jenkins or Harbormaster for each source repository.
Thank you very much for your fast answer! What about the order? Does Herald/Harbormaster ensure in this case that the builds are always processed/triggered in the right order? I mean if there are three new commits A-B-C in branch develop pushed, is A build before B is build before C?
I wasn't really sure. So I thought that "previous commit to build [...]" and "ancestors of that commit [...]" relates to the order in which Herald triggers, which must not be equal to the one in the repository. So Herald would trigger B-A-C and the build step Wait for Previous Commits to Build just ensures that they are processed sequentially. But regarding to your comment this was obviously a twisted thought of mine. :D