-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Dependency Cache] Dependency Cache on CI per Project [without GRADLE_RO_DEP_CACHE] #135
Draft
ParaskP7
wants to merge
7
commits into
trunk
Choose a base branch
from
gradle/isolate-dependency-cache-per-project-v2
base: trunk
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is done in order to avoid having each client project adding its own project prefix to distinguish the Gradle dependency cache key. Test Only PR (WCAndroid): https://github.com/woocommerce/ woocommerce-android/pull/13122 For example, for WCAndroid, this would mean that instead of using this 'WOOCOMMERCE' value via this 'GRADLE_DEPENDENCY_CACHE_PROJECT_PREFIX' environment variable, which ultimately is creating the below 'WOOCOMMERCE_GRADLE_DEPENDENCY_CACHE' key, instead, with this change the 'woocommerce-android_GRADLE_DEPENDENCY_CACHE' key will be automatically created, taking the 'woocommerce-android' value from the standard 'BUILDKITE_PIPELINE_SLUG' environment variable. For more info see: p1734350857095859-slack-C020Q0Z579V
1 task
Generated by 🚫 Danger |
ParaskP7
force-pushed
the
gradle/isolate-dependency-cache-per-project-v2
branch
8 times, most recently
from
December 20, 2024 15:06
cb9972a
to
5fef742
Compare
1. On saving, the script will create a new folder, within the 'GRADLE_HOME' space, named 'dependency-cache', where all the contents from 'caches/modules-2' will be copied after the build finishes. 2. On restoring, the script will create the 'caches/modules-2' folder, within the 'GRADLE_HOME' space, and extract the saved contents into it and before the build starts.
This is done in order to differentiate between the 'GRADLE_RO_DEP_CACHE' and the 'GRADLE_DEP_CACHE' caches, and thus be able to test both caching strategies in-parallel, without one overwriting the other on save, or one reusing the other on restore.
ParaskP7
force-pushed
the
gradle/isolate-dependency-cache-per-project-v2
branch
from
December 20, 2024 15:20
5fef742
to
84a1cb6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related: #134 + buildkite-ci#570
This change mainly adds a project prefix (
BUILDKITE_PIPELINE_SLUG
) to the existing gradle dependency cache key (GRADLE_DEPENDENCY_CACHE_KEY
) so that to enable testing another dependency cache mechanism, but per project, WITHOUT depending on the read-only cache (GRADLE_RO_DEP_CACHE).FYI: The rest of the optimization are done for measuring purposes (like adding the
duration
,cache size
, etc).CHANGELOG.md
if necessary.