3 ms·
> That seems high to me. Where does that come from? it is high (and i agree too high imo), but many apps utilize a lot of 3rd party libraries that take a loooo
by andrekandre 3y ago
> That seems high to me. Where does that come from?
it is high (and i agree too high imo), but many apps utilize a lot of 3rd party libraries that take a loooong time to compile (just off the top of my head, various "reactive" frameworks, realm, firebase related libs etc)
you might ask why not deliver binary libs to cut down the time, well that used to be easy with obj-c/c dylibs but swift doesnt have a stable abi outside of apple libs, so every new swift update requires recompilation and swift package manager doesnt have much in the way of caching binaries for dependencies in a ci afaik
- tl 3y agoNot just compile, but download. In addition to dozens pure-iOS projects (internal apps deployed to users), I have a couple of react-native codebases to support Android. Xcode Cloud spends more time downloading npm packages than anything else including compiling. Unlike other CI tools I’ve used, there is no way to Xcode Cloud to maintain a dirty executor or specify dependencies to skip this step. In addition, downloading dependencies fails so often that CI fails a majority of builds which have to be re-run which consumes more minutes. I’m currently working with a client to convince them Jenkins on a Mac they own is cheaper and easier, working through the standard headaches of an IT department who supports thousands of iPhones and Windows machines but doesn’t want to support a single digit number of Mac just because Apple fights any attempt at cross-compiling from anything that’s not a Mac.
- orand 3y agoIf you're downloading dependencies on every build then you don't have a repeatable build.