update .gitlab-ci.yml
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user