From 3542ac522bd87c483d8a7ffe6b8bfd584b584169 Mon Sep 17 00:00:00 2001 From: George Stykalin Date: Sat, 25 May 2024 22:58:06 +0300 Subject: [PATCH] update .gitlab-ci.yml --- .gitlab-ci.yml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ec77f11..51119bd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ variables: KANIKO_CONTEXT: ${CI_PROJECT_DIR} RELEASE_CLI_IMAGE: harbor.kvazaric.ru/kube-forge/release-cli:v0.18.0 CICD_MULTITOOL: harbor.kvazaric.ru/postgres-tasks/cicd-multitool:2.4 + BINARY_BUILDER_IMAGE: golang:alpine PREPARE_RELEASE: options: @@ -79,6 +80,72 @@ build-docker: if: $CI_COMMIT_REF_NAME =~ /^(master)$/ when: always +build-binary: + stage: build + image: + name: ${BINARY_BUILDER_IMAGE} + entrypoint: [""] + allow_failure: false + tags: + - build + - docker + script: + - CGO_ENABLED=0 GOOS=linux go build -v -o app ./cmd/main/main.go + artifacts: + paths: + - ${CI_PROJECT_DIR}/kube-forge + 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 + +prepare-tarball: + stage: build + image: ${CICD_MULTITOOL} + allow_failure: false + tags: + - build + - docker + script: + - mkdir archive + - cp kube-forge archive + - cp requirements.txt archive + - cp -R kubespray archive + - tar zcvf kube-forge-${VERSION}-${CI_COMMIT_SHORT_SHA}.tar.gz archive + dependencies: + - make-version-name + - build-binary + needs: + - make-version-name + - build-binary + artifacts: + paths: + - ${CI_PROJECT_DIR}/kube-forge-${VERSION}-${CI_COMMIT_SHORT_SHA}.tar.gz + 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}