How to Share Files Between Pipelines
With the build cache structure provided by Appcircle, you can share cache files between pipelines in different branches. This sharing enables faster package generation across various branches, reducing overall build time. Below is a simple, step-by-step example of how you can achieve this.
This simple example will use our CocoaPods files in a different branch. If you want to use a cache other than dependencies, please refer to the documentation for the Cache Push component.
As an example, master and development branches were used, but you can apply the same operations to different branches.
Please note that the organizational structure of Appcircle is designed in such a way as to prevent any security vulnerabilities. Consequently, exchanging files between organizations or sub-organizations is not permitted.
You can find detailed information about the Appcircle organizational structure in the documentation here.
In order to share cache between pipelines, the Cache Pull component must be added to the related pipeline.
-
To start, cache the CocoaPods files in the development branch, which will later be utilized in the master branch. For this purpose, add the Cache Push step to the workflow after the CocoaPods Install step.
-
After the successful completion of the build in the development branch, cached CocoaPods files are ready to be used in the master branch.
-
For the master branch, the workflow steps need to be made suitable first. To achieve this, the Cache Pull step is added to the workflow before the CocoaPods Install step.
-
When you enter the Cache Pull step, the Cache Label will be visible. By default, this parameter is set as
$AC_BUILD_PROFILE_ID/$AC_GIT_BRANCH/cache
. In this case, the value of$AC_BUILD_PROFILE_ID
will remain constant as it is within the same build profile, while the value of$AC_GIT_BRANCH
will be changed to the development branch name. The parameter value should be set as$AC_BUILD_PROFILE_ID/development/cache
.cautionIf you use more than one cache for the same branch, you can edit the cache label accordingly in both Cache Push and Cache Pull steps. For example:
$AC_BUILD_PROFILE_ID/development/cache-1
$AC_BUILD_PROFILE_ID/development/cache-cocoapods
-
After this parameter change, the CocoaPods dependencies that were cached in the development branch pipeline will be automatically pulled to the master branch and used directly in the master branch pipeline.
![](https://cdn.appcircle.io/docs/assets/BE2911-pullSuccess.png)
When sharing cache files between pipelines, please make sure that you spell your branch names correctly and use the Cache Push and Cache Pull steps correctly.