This is based on my own investigation and may be completely wrong in future releases.
The Xcode service exposes an HTTP endpoint to perform an immediate integration when the trigger script schedule option is selected:
POST /xcs/kick-commit-bots
Parameters:
repository: URL to the repository as shown in the bot's settings.
branch: (optional) Name of the branch to trigger integrations for. If specified, only bots configured to build this branch will be integrated. If unspecified, all bots for the specified repository will be integrated.
Example:
curl http://server.local/xcs/kick-commit-bots \
-d repository=ssh://server.local/git/example.git \
-d branch=master
To make use of trigger script scheduling option you'll need to create a repository hook to trigger this endpoint on receipt of new commits. OS X Server contains an example hook in /Applications/Server.app/Contents/ServerRoot/usr/share/collabd/server/ruby/kick_build_bot.rb
. For hosted Git repositories created through the Xcode service a post-receive hook using this script is created for you automatically.
Note that the repository URL sent to /xcs/kick-commit-bots
must match the repository URL as shown in the bot's settings in the web interface. It seems that for hosted repositories the URL can change - sometimes an ssh:
URL is used and sometimes a file:
URL is used.