Skip to content
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

Workaround Travis CI build time problems. #1801

Merged
merged 2 commits into from Jan 7, 2019

Conversation

coryan
Copy link
Member

@coryan coryan commented Jan 7, 2019

Until we have a better solution in place this enables us to bootstrap
the build cache. Basically when starting with a completely empty cache
the build will stop halfway, which will partially populate the cache and
make the next build go faster.

The majority of this change is to ensure that "halfway" captures enough
things to make for a substantial initial cache.

The algorithm to decide if the cache is "cold" is kind of naive, we
really test for "the cache has 0 bytes". Obviously this will not work
sometimes, for example, if the cache is full of garbage. In that case we
can manually clear the cache in Travis and start over.

I created #1800 to track a real solution, because these hacks are not
awesome.


This change is Reviewable

Until we have a better solution in place this enables us to bootstrap
the build cache. Basically when starting with a completely empty cache
the build will stop halfway, which will partially populate the cache and
make the next build go faster.

The majority of this change is to ensure that "halfway" captures enough
things to make for a substantial initial cache.

The algorithm to decide if the cache is "cold" is kind of naive, we
really test for "the cache has 0 bytes". Obviously this will not work
sometimes, for example, if the cache is full of garbage. In that case we
can manually clear the cache in Travis and start over.

I created googleapis#1800 to track a real solution, because these hacks are not
awesome.
@coryan coryan added the type: process A process-related concern. May include testing, release, or the like. label Jan 7, 2019
@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Jan 7, 2019
Copy link
Contributor

@devbww devbww left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm no cmake guru, but LGTM.

CMakeLists.txt Outdated
@@ -139,6 +139,13 @@ set_property(CACHE GOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER
set(PROJECT_THIRD_PARTY_DIR "${PROJECT_SOURCE_DIR}/third_party")
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

# There are a number of targets that are pure depedencies, i.e., do not contain
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small typo here: depedencies

@codecov
Copy link

codecov bot commented Jan 7, 2019

Codecov Report

Merging #1801 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@          Coverage Diff           @@
##           master   #1801   +/-   ##
======================================
  Coverage    94.2%   94.2%           
======================================
  Files         298     298           
  Lines       16251   16251           
======================================
  Hits        15309   15309           
  Misses        942     942

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ca5d9bd...cb1cda4. Read the comment docs.

@coryan coryan merged commit 0f7228c into googleapis:master Jan 7, 2019
@coryan coryan deleted the workaround-to-bootstrap-ccache branch January 7, 2019 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes This human has signed the Contributor License Agreement. type: process A process-related concern. May include testing, release, or the like.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants