diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4d6bf08c4568b21a25934e3669ee62f95d6b091a..d237619714c0ec2a39ae441c57f13edd85be5779 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,23 +84,15 @@ lint_python_scripts: echo -e "\e[0Ksection_start:$(date +%s):tag[collapsed=true]\r\e[0KDetermining tag for the new image..." if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'" - tag=":latest" + tag="latest" else echo "Running on branch '$CI_COMMIT_BRANCH': tag = $CI_COMMIT_REF_SLUG" - tag=":$CI_COMMIT_REF_SLUG" + tag="$CI_COMMIT_REF_SLUG" fi echo -e "\e[0Ksection_end:$(date +%s):tag\r\e[0K" - echo -e "\e[0Ksection_start:$(date +%s):build[collapsed=true]\r\e[0KBuilding image "$CI_REGISTRY_IMAGE/$BUILD_TARGET${tag}"..." - docker build --file "Dockerfile.$BUILD_TARGET" --pull \ - -t "$CI_REGISTRY_IMAGE/$BUILD_TARGET${tag}" \ - -t "$CI_REGISTRY_IMAGE/$BUILD_TARGET:$CI_COMMIT_SHA" . + echo -e "\e[0Ksection_start:$(date +%s):build[collapsed=true]\r\e[0KBaking image "$CI_REGISTRY_IMAGE/$BUILD_TARGET${tag}"..." + docker buildx bake --progress=plain --push "$BUILD_TARGET" echo -e "\e[0Ksection_end:$(date +%s):build\r\e[0K" - echo -e "\e[0Ksection_start:$(date +%s):push1[collapsed=true]\r\e[0KPushing image "$CI_REGISTRY_IMAGE/$BUILD_TARGET${tag}"..." - docker push "$CI_REGISTRY_IMAGE/$BUILD_TARGET${tag}" - echo -e "\e[0Ksection_end:$(date +%s):push1\r\e[0K" - echo -e "\e[0Ksection_start:$(date +%s):push2[collapsed=true]\r\e[0KPushing image "$CI_REGISTRY_IMAGE/$BUILD_TARGET:$CI_COMMIT_SHA"..." - docker push "$CI_REGISTRY_IMAGE/$BUILD_TARGET:$CI_COMMIT_SHA" - echo -e "\e[0Ksection_end:$(date +%s):push2\r\e[0K" needs: - build_docker_dind_image tags: diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 0000000000000000000000000000000000000000..3370cb666a71a1c418ef9515f6d1feacafd94b4a --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,38 @@ +variable "CI_REGISTRY_IMAGE" {} +variable "CI_COMMIT_SHA" {} +variable "tag" { + default = "latest" +} + +function "notempty" { + params = [variable] + result = notequal("", variable) +} + +function "generate-tags" { + params = [target] + result = [ + notempty(CI_REGISTRY_IMAGE) ? "${CI_REGISTRY_IMAGE}/${target}:${tag}" : "${target}:${tag}", + notempty(CI_COMMIT_SHA) ? "${CI_REGISTRY_IMAGE}/${target}:${CI_COMMIT_SHA}": "" + ] +} + +target "benchmark-test-runner" { + dockerfile = "Dockerfile.benchmark-test-runner" + tags = generate-tags("benchmark-test-runner") +} + +target "docker-builder" { + dockerfile = "Dockerfile.docker-builder" + tags = generate-tags("docker-builder") +} + +target "docker-dind" { + dockerfile = "Dockerfile.docker-dind" + tags = generate-tags("docker-dind") +} + +target "image-remover" { + dockerfile = "Dockerfile.image-remover" + tags = generate-tags("image-remover") +} \ No newline at end of file