variables: DOCKER_IMAGE: harbor.kvazaric.ru/kube-forge/kube-forge KANIKO_IMAGE: harbor.kvazaric.ru/postgres-tasks/kaniko_executor:debug KANIKO_CONTEXT: ${CI_PROJECT_DIR} RELEASE_CLI_IMAGE: harbor.kvazaric.ru/kube-forge/release-cli:v0.18.0 PREPARE_RELEASE: options: - "No" - "Yes" value: "No" description: Create release from this build? WITHOUT_BUILD: options: - "No" - "Yes" value: "Yes" description: Create release without building? stages: - build - release build-docker: variables: DOCKERFILE_PATH: Dockerfile IMAGE_DESTINATION: image stage: build image: name: ${KANIKO_IMAGE} entrypoint: [""] allow_failure: false tags: - build - docker before_script: - mkdir -p /kaniko/.docker - echo "${DOCKER_AUTH_CONFIG}" > /kaniko/.docker/config.json - VERSION=$(cat ${CI_PROJECT_DIR}/build/version.txt) script: - | /kaniko/executor --context "${KANIKO_CONTEXT}" \ --dockerfile ${CI_PROJECT_DIR}/build/docker/Dockerfile \ --destination "${DOCKER_IMAGE}:${VERSION}-${CI_COMMIT_SHORT_SHA}" dependencies: [] rules: - if: $PREPARE_RELEASE == "Yes" && $WITHOUT_BUILD == "Yes" when: never - changes: - build/docker/**/* - cmd/**/* - internal/**/* - kubespray/**/* - go.sum - go.mod - requirements.txt - ansible.cfg if: $CI_COMMIT_REF_NAME =~ /^(master)$/ when: always make-release: stage: release image: ${RELEASE_CLI_IMAGE} tags: - build - docker rules: - if: $PREPARE_RELEASE == "Yes" script: - VERSION=$(cat ${CI_PROJECT_DIR}/build/version.txt) - echo "Preparing release for version ${VERSION}-${CI_COMMIT_SHORT_SHA}" release: # See https://docs.gitlab.com/ee/ci/yaml/#release for available properties name: kube-forge:${VERSION}-${CI_COMMIT_SHORT_SHA} tag_name: "${CI_COMMIT_SHORT_SHA}" description: "${VERSION}-${CI_COMMIT_SHORT_SHA}" assets: links: - name: "Docker image" url: "harbor.kvazaric.ru/kube-forge/kube-forge:${VERSION}-${CI_COMMIT_SHORT_SHA}" link_type: "image" when: on_success