Esses exemplos podem ser usados para fazer experiências com frotas de capacidade reservada no CodeBuild.
Armazenamento em cache com amostra de capacidade reservada
Um cache pode armazenar partes reutilizáveis do seu ambiente de compilação e usá-las em várias compilações. Este exemplo demonstrou como habilitar o armazenamento em cache no projeto de compilação usando a capacidade reservada. Para obter mais informações, consulte Compilações em cache para melhorar o desempenho.
Você pode começar especificando um ou mais modos de cache nas configurações do projeto:
Cache:
Type: LOCAL
Modes:
- LOCAL_CUSTOM_CACHE
- LOCAL_DOCKER_LAYER_CACHE
- LOCAL_SOURCE_CACHE
nota
Habilite o modo privilegiado para usar o cache de camadas do Docker.
As configurações de especificação da compilação do projeto devem se parecer com o seguinte:
version: 0.2
phases:
build:
commands:
- echo testing local source cache
- touch /codebuild/cache/workspace/foobar.txt
- git checkout -b cached_branch
- echo testing local docker layer cache
- docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1
- echo testing local custom cache
- touch foo
- mkdir bar && ln -s foo bar/foo2
- mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4
- "[ -f foo ] || exit 1"
- "[ -L bar/foo2 ] || exit 1"
- "[ -f bar/bar/foo3 ] || exit 1"
- "[ -f bar/bar/foo4 ] || exit 1"
cache:
paths:
- './foo'
- './bar/**/*'
- './bar/bar/foo3'
Você pode começar executando uma compilação com o novo projeto para propagar o cache. Ao concluir, você deve iniciar outra compilação com uma especificação de compilação de substituição, semelhante à seguinte:
version: 0.2
phases:
build:
commands:
- echo testing local source cache
- git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi
- ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi
- echo testing local docker layer cache
- docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi
- echo testing local custom cache
- "[ -f foo ] || exit 1"
- "[ -L bar/foo2 ] || exit 1"
- "[ -f bar/bar/foo3 ] || exit 1"
- "[ -f bar/bar/foo4 ] || exit 1"
cache:
paths:
- './foo'
- './bar/**/*'
- './bar/bar/foo3'