From d20f50a6daaaa347d76053e4980fced7b479d14b Mon Sep 17 00:00:00 2001 From: Milan Cermak <cermak@ics.muni.cz> Date: Sat, 9 Nov 2024 21:41:44 +0100 Subject: [PATCH] Upgrade to Kaniko builder --- .gitlab-ci.yml | 58 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4126921..8633529 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,31 +1,43 @@ -# CI for automated build and publish of project containers +# CI for automated build and publish of project Docker containers -build-branches: - image: docker:latest +stages: + - build + - build_push + +variables: + IMAGE_TAG: $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG} + IMAGE_TEST_BUILD: $CI_REGISTRY_IMAGE:test-build + +# Check only for successful Docker image build +docker_build: stage: build - services: - - docker:dind - variables: - IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + before_script: [ ] # Prevent global before_script from running + image: + name: gcr.io/kaniko-project/executor:v1.23.2-debug + entrypoint: [""] script: - - docker build --pull -t "$IMAGE_TAG" . - - docker push "$IMAGE_TAG" + - /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile" + --destination "${IMAGE_TEST_BUILD}" + --no-push except: - - master + - tags -build-latest: - image: docker:latest - stage: build - services: - - docker:dind - variables: - IMAGE_TAG: $CI_REGISTRY_IMAGE:latest +# Build and publish Docker image when a new tag is defined +docker_build_push: + stage: build_push + image: + name: gcr.io/kaniko-project/executor:v1.23.2-debug + entrypoint: [""] before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json script: - - docker build --pull -t "$IMAGE_TAG" . - - docker push "$IMAGE_TAG" + - /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile" + --destination "${IMAGE_TAG}" only: - - master + - tags + except: + - branches -- GitLab