Cache save point after "test" section


#1

We use rubocop to enforce some style rules and we run it as part of the “test” phase of our CircleCI build. Rubocop has a caching feature which dramatically improves performance but we’re unable to use it on CircleCI because the cache is not saved after the “test” section (and the last cache save point after the “database” section is too early since rubocop has not run yet.

Could we get another cache save point after the “test” phase?


#2

Hi Circle!

Is there anything going with this?

This is useful for “parallel_test” in rails as well.


#3

I would also find this incredibly useful.

The tests for my large Node.js app are transpiled on the fly using Babel, and after tests succeed I run a full build which transpiles, bundles, and minifies client-side JS using webpack. Both steps generate cache data that would significantly speed up future runs, but there’s currently no way to preserve that data since CircleCI collects cache directories too early.


#4

I would also find this useful. For now, I am using a hack. I use rsync to restore and save the cache to a remote machine.

test:
  pre:
    - rsync -vrt "someuser@somehost:/ci/babel-cache" "$BABEL_CACHE_DIR"
  post:
    - rsync -vrt "$BABEL_CACHE_DIR" "someuser@somehost:/ci/babel-cache"

The build time reduced from 4.5 minutes to 1.5 minutes. 3x improvement.

Would be great to have this feature baked into CircleCI, so I don’t need an extra machine for storing caches.


#5

I have the same use case as @rgrove.

Builds are significantly faster with babel caching


#6

This can be done in CircleCI 2.0 where cache saving and restoring can be done wherever you want in the build process.


#7