Rework the way we build and use Debian/Ubuntu images
Following changes have been made to the Makefile and Dockerfile for Debian/Ubuntu images: * With introduction of arm64 builder, we needed more fine grained switches that define whether to install specific software bundle into the image. The switches are now defined as a tripplets: <software>_<version>_<architecture>, e.g. dnstap_buster_amd64 * Change the install/no-install logic for abi-compliance-checker, shellcheck, and compiledb from Dockerfile to the Makefile * It was hard to test whether the images build correctly and not mess with production environment. Now, the images are pushed only if the pipeline is run on the default repository branch (e.g. master). * Install only a single LLVM/Clang version - 10 at the time of this commit. This has to match with bind9's .gitlab-ci.yml. * Don't install the LLVM/Clang to Debian sid, this is more often broken than it's not. * Pick a "base_image" in the bind9's .gitlab-ci.yml that will have the extra software. At the time of writing this, The Debian amd64 buster image was picked. This means needs to get the latest version of the clang, coccinelle, abicc, cppcheck and others. * If `@FOO@` in the `if [ -n "@FOO@" ]` construct didn't get replaced it would default to true. Change this to `if [ "@FOO@" = "yes" ]` that defaults to false. * Install the abi-compliance-checker and it's dependencies from the git repository instead from the Debian buster repository.
Showing with 78 additions and 88 deletions