How to force the Xcode Continuous Integration service to execute shallow git clones?

I just installed the new OS X Server with Xcode CI ( http://www.apple.com/osx/server/features/#xcode-server ).

I have successfully configured CI for my project, but the submodule of the main git repo is very large (it contains version-driven images, not code).

For performance and space-related reasons, I would like CI to use a shallow clone instead of a full clone when getting a submodule. Is there a way to configure CI for this?

Or is there an alternative way to speed up the process?

+8
git xcode osx-mavericks
source share
1 answer

Unclear submodules are possible with git, the problem is related to Xcode CI.

Using git to store large binary images is an anti-pattern, so it may never be the best behavior. For Xcode, ideally, you would not use git for this purpose and just a script in CI so that the build process retrieves a single image (for example, using the rake or gradle, wget, curl, scp, etc. functions). If this is really the purpose of the image, you probably have the ability to reference it like this jar file:

https://github.com/projecthydra/hydra-jetty/blob/master/solr/lib/solr-analysis-extras-4.9.0.jar

CI is not interested in having other possible conditions for a goal or a history of changes. He just wants to fulfill the addiction.

If you must use a submodule , you can set up your own slimmed internal repo object called [this_submodule] _current , which simply has the only state you want. Remove it and replace as necessary.

Note that Xcode apparently has a caught submodule header error , so it assumes there will be some time before they turn to another slightly more exotic submodule with options like --depth .

0
source share

All Articles