periodicator/.gitlab-ci.yml

55 lines
1.8 KiB
YAML

variables:
# Docker service related things.
DOCKER_IMAGE: registry.gitlab.pztrn.name/containers/mirror/docker:20.10.8-dind
DOCKER_HOST: tcp://docker:2375
DOCKER_TCP_PORT: 2375
DOCKER_TLS_CERTDIR: ""
LINTTEST_IMAGE: registry.gitlab.pztrn.name/containers/mirror/golangci/golangci-lint:v1.42.1
CURL_IMAGE: registry.gitlab.pztrn.name/containers/mirror/curlimages/curl:7.79.1
# Docker images names that we will push to registry.
REGISTRY_IMAGE_LATEST: ${CI_REGISTRY_IMAGE}:latest
REGISTRY_IMAGE_TAGGED: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
services:
- name: ${DOCKER_IMAGE}
alias: docker
stages:
- test
- release
lint:
stage: test
tags:
- docker
image: ${LINTTEST_IMAGE}
script:
- golangci-lint run
# Docker images building.
build_master_image:
stage: release
only:
- master
tags:
- docker
image: ${DOCKER_IMAGE}
script:
- scripts/get_version.sh generate
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- docker build --pull -t ${REGISTRY_IMAGE_LATEST} --build-arg CI_COMMIT_TAG=${CI_COMMIT_TAG} --build-arg CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} --build-arg CI_COMMIT_SHA=${CI_COMMIT_SHA} --build-arg CI_PROJECT_NAME=${CI_PROJECT_NAME} .
- docker push ${REGISTRY_IMAGE_LATEST}
build_tag_image:
stage: release
only:
- tags
tags:
- docker
image: ${DOCKER_IMAGE}
script:
- scripts/get_version.sh generate
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- docker build -t ${REGISTRY_IMAGE_TAGGED} --build-arg CI_COMMIT_TAG=${CI_COMMIT_TAG} --build-arg CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} --build-arg CI_COMMIT_SHA=${CI_COMMIT_SHA} --build-arg CI_PROJECT_NAME=${CI_PROJECT_NAME} .
- docker push ${REGISTRY_IMAGE_TAGGED}