My goal is to speed up our test pipeline. For this, I first build our images, then in a 2nd step, pull them and execute our tests. In this 2nd step, I want to skip the checkout as it last 30s or more (we are using a monorepo). So I tried the skip-checkout=true
with the artifacts plugin to download the docker-compose file which is not checkout anymore. But doing this, the 2nd step fail:
docker-compose -f ci/docker-compose.yml -p buildkite018195c52bf04e4a99ce687495917ddd -f docker-compose.buildkite-315-override.yml up -d --scale backend=0 backend
--
| ERROR: build path /tmp/backend either does not exist, is not accessible, or is not a valid URL.
The reason is that docker-compose try to build the image even if we don’t need it and obviously it does not find anything. Have you any idea how I can fix this workflow? I guess I have to play arround override, but I don’t know where to start.
version: "3.8"
services:
frontend:
build:
dockerfile: frontend.Dockerfile
backend:
build:
dockerfile: backend.Dockerfile
depends_on:
- postgres
- frontend
postgres:
image: "postgres:11"
steps:
- label: ":docker::building_construction: Build images"
key: "build-images"
plugins:
- artifacts#v1.5.0:
upload: "ci/*"
- docker-compose#v3.9.0:
config: ci/docker-compose.yml
build-parallel: true
image-repository: my/registry
build:
- frontend
- backend
- label: ":rspec: Run tests"
depends_on:
- "build-images"
command: ./test.sh
plugins:
- artifacts#v1.5.0:
download: "ci/*"
- docker-compose#v3.9.0:
config: ci/docker-compose.yml
skip-checkout: true
args:
- "--no-build"
pull:
- frontend
- backend
run: backend