summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2019-11-23 21:17:15 +1100
committerEdward Thomson <ethomson@edwardthomson.com>2019-11-24 16:49:35 +1100
commitb8e00b980dd66235c931a9b0e055a93e81559ee3 (patch)
tree38936a7c37a82bed4d1fb4b4eab1291c8abcd2cd
parent6df3ec4a520ad9ee43f71cfc4443c00a27e414af (diff)
downloadlibgit2-b8e00b980dd66235c931a9b0e055a93e81559ee3.tar.gz
ci: cache docker layers
Our docker builds are getting expensive, let's cache some of this.
-rw-r--r--azure-pipelines/docker.yml10
1 files changed, 10 insertions, 0 deletions
diff --git a/azure-pipelines/docker.yml b/azure-pipelines/docker.yml
index dea1ce5bf..0e1988c8a 100644
--- a/azure-pipelines/docker.yml
+++ b/azure-pipelines/docker.yml
@@ -4,9 +4,19 @@ steps:
- script: docker run --rm --privileged multiarch/qemu-user-static:register --reset
displayName: 'Register Docker QEMU'
+- task: cache@2
+ displayName: Cache Docker layers
+ inputs:
+ key: docker
+ path: /tmp/dockercache
+- script: |
+ if [ -f /tmp/dockercache/${{parameters.docker.image}}.tar ]; then docker load < /tmp/dockercache/${{parameters.docker.image}}.tar; fi
+ displayName: 'Load Docker cache'
- script: |
cd $(Build.SourcesDirectory)/azure-pipelines/docker
docker build -t libgit2/${{parameters.docker.image}} --build-arg BASE=${{parameters.docker.base}} -f ${{parameters.docker.image}} .
+ if [ ! -d /tmp/dockercache ]; then mkdir /tmp/dockercache; fi
+ docker save libgit2/${{parameters.docker.image}} $(docker history -q libgit2/${{parameters.docker.image}} | grep -v '<missing>') > /tmp/dockercache/${{parameters.docker.image}}.tar
displayName: 'Build Docker image'
- task: docker@0
displayName: Build