Currently, we have two docker images to provide building env for prow jobs:
- quay.io/multicloudlab/build-tools
- quay.io/multicloudlab/multicloudlab-builder
The first image contains all kinds of linter(golangci-linter, helm, yamllinter, mdl, shellcheck...) and some common language runtime( nodejs, python, ruby, golang...). It's mainly used to provide env for:
- make check
- make build(without docker image)
- make coverage....
The second image contains golang, gcloud-sdk(to get credentials from GKE cluster) and docker client and daemon. It's mainly used to provide env for:
- make image(build go binary and docker image)
We need to pay attention to the command
of prow job when trying to use the second image, because we need to start docker daemon before running the make target, so you can see, I have to manually add entrypoint
before `make images':
- command:
- entrypoint
- make
- images
image: quay.io/multicloudlab/multicloudlab-builder:v20191217-d33a10d
Since we're going to support real multi-arch build(building artifacts in each platform) to replace current qemu simulation on amd64 platform, we need to build the build-tool
image for different platforms(amd64, ppc64le and s390x).
However, given that the original quay.io/multicloudlab/build-tools
image contains lots of linter tools that haven't been migrated to ppc64le and s390x. Besides IMO, running the make check
or make lint
stage in single platform(amd64) should be sufficient.
So my plan is:
/kind epic
/assign
/cc @gyliu513