producer-fast is a mode similar to producer, but tries to reuse existing artifacts on a remote server. The flow is as follows:
For each target, in a build process try to reuse artifacts (similar to the consumer mode)
If all was fine, in a xcpostbuild only upload new meta file with almost the same content, but a different commit sha so consumers will be able to download it right away, e.g. 7672c431b312649b5de5b0bb25d6b66637d7e9bc-targetName-Debug-iphonesimulator-13A233-febe8bf27e87b274a94539b439169394.json is uploaded to c53a24c019c717a50e5d072d1862276f15c90bf2-targetName-Debug-iphonesimulator-13A233-febe8bf27e87b274a94539b439169394.json, where 7672c431b312649b5de5b0bb25d6b66637d7e9bc is a previous commit sha that the artifact was reused and c53a24c019c717a50e5d072d1862276f15c90bf2 is current sha that we run a build
If local compilation was forced (source code has changed), just follow the flow of the producer
Bonus: experimental "thinning plugin" had to be updated to always refer up-to-date artifacts (either built locally or reused).
Adding a new (experimental) mode:
producer-fast
.producer-fast
is a mode similar toproducer
, but tries to reuse existing artifacts on a remote server. The flow is as follows:consumer
mode)7672c431b312649b5de5b0bb25d6b66637d7e9bc-targetName-Debug-iphonesimulator-13A233-febe8bf27e87b274a94539b439169394.json
is uploaded toc53a24c019c717a50e5d072d1862276f15c90bf2-targetName-Debug-iphonesimulator-13A233-febe8bf27e87b274a94539b439169394.json
, where7672c431b312649b5de5b0bb25d6b66637d7e9bc
is a previous commit sha that the artifact was reused andc53a24c019c717a50e5d072d1862276f15c90bf2
is current sha that we run a buildproducer