> recordPreviousIterations
> compile
> pushRemoteCache

# Generated sources, compiled classes
$ exists target/custom-artifact-gen/HelloWorld.scala
$ exists target/scala-2.12/classes/HelloWorld.class
$ exists target/scala-2.12/classes/MyClass.class
$ exists target/scala-2.12/classes/MyClass$.class
$ exists target/scala-2.12/zinc/inc_compile_2.12.zip
$ exists target/scala-2.12/test-classes/MyTest.class
$ exists target/scala-2.12/test-classes/MyTest$.class
$ exists target/scala-2.12/test-zinc/inc_compile_2.12.zip

# Compile
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-compile.jar
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-compile.jar.md5
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-compile.jar.sha1

# Test
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-test.jar
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-test.jar.md5
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-cached-test.jar.sha1

# Custom artifact
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-custom-artifact.jar
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-custom-artifact.jar.md5
$ exists r/my-project/my-project_2.12/0.0.0-fixed-id/my-project_2.12-0.0.0-fixed-id-custom-artifact.jar.sha1

> clean

$ absent target/custom-artifact-gen/HelloWorld.scala
$ absent target/scala-2.12/classes/HelloWorld.class
$ absent target/scala-2.12/classes/MyClass.class
$ absent target/scala-2.12/classes/MyClass$.class
$ absent target/scala-2.12/zinc/inc_compile_2.12.zip
$ absent target/scala-2.12/test-classes/MyTest.class
$ absent target/scala-2.12/test-classes/MyTest$.class
$ absent target/scala-2.12/test-zinc/inc_compile_2.12.zip

> pullRemoteCache

# Files extracted from the cache artifacts
$ exists target/custom-artifact-gen/HelloWorld.scala
$ exists target/scala-2.12/classes/HelloWorld.class
$ exists target/scala-2.12/classes/MyClass.class
$ exists target/scala-2.12/classes/MyClass$.class
$ exists target/scala-2.12/zinc/inc_compile_2.12.zip
$ exists target/scala-2.12/test-classes/MyTest.class
$ exists target/scala-2.12/test-classes/MyTest$.class
$ exists target/scala-2.12/test-zinc/inc_compile_2.12.zip

> checkIterations 1

# Artifacts can be pushed twice (enabled overriding)
> pushRemoteCache