update .gitlab-ci.yml
This commit is contained in:
@@ -5,6 +5,7 @@ variables:
|
|||||||
KANIKO_CONTEXT: ${CI_PROJECT_DIR}
|
KANIKO_CONTEXT: ${CI_PROJECT_DIR}
|
||||||
RELEASE_CLI_IMAGE: harbor.kvazaric.ru/kube-forge/release-cli:v0.18.0
|
RELEASE_CLI_IMAGE: harbor.kvazaric.ru/kube-forge/release-cli:v0.18.0
|
||||||
CICD_MULTITOOL: harbor.kvazaric.ru/postgres-tasks/cicd-multitool:2.4
|
CICD_MULTITOOL: harbor.kvazaric.ru/postgres-tasks/cicd-multitool:2.4
|
||||||
|
BINARY_BUILDER_IMAGE: golang:alpine
|
||||||
|
|
||||||
PREPARE_RELEASE:
|
PREPARE_RELEASE:
|
||||||
options:
|
options:
|
||||||
@@ -79,6 +80,72 @@ build-docker:
|
|||||||
if: $CI_COMMIT_REF_NAME =~ /^(master)$/
|
if: $CI_COMMIT_REF_NAME =~ /^(master)$/
|
||||||
when: always
|
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:
|
make-release:
|
||||||
stage: release
|
stage: release
|
||||||
image: ${RELEASE_CLI_IMAGE}
|
image: ${RELEASE_CLI_IMAGE}
|
||||||
|
|||||||
Reference in New Issue
Block a user