I’m trying to setup the Xcode continuous integration server, but so far I’m not able to even get the bot to check out the repository. As far as I can tell, the server is having trouble with Git submodules. This is a repo hosted on Github which is pretty typical in its use of submodules; no weirdness going on. (It’s hosted at https://github.com/couchbase/couchbase-lite-ios .)
I got the bot configured, but the builds fail. It took me quite a while to figure out why, though, since there aren’t any error messages shown. The bot logs, even if I choose “Errors Only”, contain thousands of lines of spew about git checkouts and such. The bot web UI shows “0 errors” but still reports failure. This was VERY FRUSTRATING. I finally searched through the logs for the string “error” and found what looks to be the problem:
Oct 28 20:43:03 jens.local xcsbuildd[20671] <Error>: [XCSCheckoutOperation.m:518 7d844310 +170ms] Error in Git checkout Error Domain=CSBotSCMAction Code=-1000 "error: pathspec '(detached from 720b04a)' did not match any file(s) known to git.
" UserInfo=0x7f9b62562960 {NSLocalizedDescription=error: pathspec '(detached from 720b04a)' did not match any file(s) known to git.
} <stderr>= error: pathspec '(detached from 720b04a)' did not match any file(s) known to git.
I’m not sure where the problematic string "(detached from 720b04a)” comes from, but that is in fact the revision ID of the HEAD of that submodule:
$ cd vendor/sqlite3-unicodesn $ git status # HEAD detached at 720b04a nothing to commit, working directory clean
I have no idea how to proceed from here. I know Xcode and the server know about submodules, because when I configured the bot it asked for the auth of all the submodules. But it doesn’t seem to understand something about their current state.
Help?
—Jens |