Add an extra feature (still in the experimental phase) to exclude XCRemoteCache in some SDKs.
e.g. to disable XCRemoteCache for watchOS, a developer can either
pass --sdks-exclude "watchos*, watchsimulator*" to the xcprepare integrate command or
set 'exclude_sdks_configurations' => ["watchos*", "watchsimulator*"] to the xcremotecache configuration in Podfile
Implementation
This PR includes:
Allows disabling remote cache in pre_build with build setting XCRC_DISABLED = YES. This ensures the rebuild script will not unnecessarily download an artifact (if a matching one exists on a remote server) which will not be used. Same for post_build (not not unnecessary upload artifacts) and marking (to not mark artifacts are available).
Introduces --sdks-exclude param to the CLI integration, which (in the project integration) overrides all XCRC-related params to "" for all SDK configurations listed in an argument
^ the same for the cocoapods integration with exclude_sdks_configurations configuration.
To verify the cocoapods integration (it is the most commonly used scenario), an extra test scenario is added which 1) disables XCRC for "iPhone" SDK and expects 0 hits and 0 misses, 2) disables XCRC for the "WatchOS" SDK and expects 100% hit rate (keep in mind that we build an iPhone app in the test)
Add an extra feature (still in the experimental phase) to exclude XCRemoteCache in some SDKs.
e.g. to disable XCRemoteCache for watchOS, a developer can either
--sdks-exclude "watchos*, watchsimulator*"
to thexcprepare integrate
command or'exclude_sdks_configurations' => ["watchos*", "watchsimulator*"]
to thexcremotecache
configuration in PodfileImplementation
This PR includes:
pre_build
with build settingXCRC_DISABLED = YES
. This ensures the rebuild script will not unnecessarily download an artifact (if a matching one exists on a remote server) which will not be used. Same for post_build (not not unnecessary upload artifacts) and marking (to not mark artifacts are available).--sdks-exclude
param to the CLI integration, which (in the project integration) overrides all XCRC-related params to "" for all SDK configurations listed in an argumentexclude_sdks_configurations
configuration.