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: - apk add --no-cache git bash - scripts/get_version.sh generate - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} - docker build --pull -t ${REGISTRY_IMAGE_LATEST} . - docker push ${REGISTRY_IMAGE_LATEST} build_tag_image: stage: release only: - tags tags: - docker image: ${DOCKER_IMAGE} script: - apk add --no-cache git bash - scripts/get_version.sh generate - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} - docker build -t ${REGISTRY_IMAGE_TAGGED} . - docker build -t ${REGISTRY_IMAGE_LATEST} . - docker push ${REGISTRY_IMAGE_TAGGED} - docker push ${REGISTRY_IMAGE_LATEST}