-
Notifications
You must be signed in to change notification settings - Fork 66
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
Improve build performance #298
Conversation
Starting reviewing this now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to go. 👍 Happy master builds now!
circle.yml
Outdated
@@ -19,7 +19,7 @@ dependencies: | |||
|
|||
test: | |||
override: | |||
- ./gradlew clean :core:install :core:verify :mapzen-android-sdk:verify :mapzen-places-api:verify | |||
- ./gradlew clean :core:install :core:verify :mapzen-android-sdk:verify :mapzen-places-api:verify --configure-on-demand |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Nicely documented in gradle docs (which sometimes are very convoluted, at least for me): https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:configuration_on_demand
circle.yml
Outdated
@@ -19,7 +19,7 @@ dependencies: | |||
|
|||
test: | |||
override: | |||
- ./gradlew clean :core:install :core:verify :mapzen-android-sdk:verify :mapzen-places-api:verify --configure-on-demand | |||
- ./gradlew clean :core:install :core:verify :mapzen-android-sdk:verify :mapzen-places-api:verify --configure-on-demand -PdisablePreDex |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only information I found for this is its recommended to use -PdisablePreDex
when doing a one time build (typical with CI env.). But no finer details behind the reasoning. Can you point me to a reference/explain? Thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using -PdisablePreDex
was recommended in this Circle CI issue.
# | ||
# Triggers mapzen docs build to publish to https://mapzen.com/documentation/. | ||
|
||
if [[ ${PERFORM_RELEASE} ]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
naive question ... when does PERFORM_RELEASE
get set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haha it does not yet! :) I will be adding a script to perform the release using Circle's API similar to this one we use for Eraser Map as part of #279.
Overview
Improves build performance on Circle CI. Reduces build time by 1-2 min for dev builds and 4-5 min for full master builds (includes sample apps). Prevents OOM errors on Circle CI container.
Proposed Changes
--configure-on-demand
and-PdisablePreDex
options to circle.yml.core
module to local .m2 repo before resolving dependencies.Fixes #297