diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 098e42a..0c9342f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,13 +46,25 @@ release: GIT_DEPTH: 0 rules: - if: $CI_COMMIT_TAG =~ /^v.*$/ - script: | - # GITLAB_TOKEN is needed to create GitLab releases. - # DOCKER_* are needed to push Docker images. - docker run --rm --privileged \ + script: + - docker run --rm --privileged \ -v $PWD:/go/src/gitlab.com/hectorjsmith/fail2ban-prometheus-exporter \ -w /go/src/gitlab.com/hectorjsmith/fail2ban-prometheus-exporter \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DOCKER_USERNAME -e DOCKER_PASSWORD -e DOCKER_REGISTRY \ -e GITLAB_TOKEN \ goreleaser/goreleaser release --clean + +tag images: + stage: release + image: docker:stable + services: + - docker:dind + needs: + - release + rules: + - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/ + variables: + IMAGE_NAME: registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter + script: + - ./.gitlab-ci/tagLatestImage.sh diff --git a/.gitlab-ci/tagLatestImage.sh b/.gitlab-ci/tagLatestImage.sh new file mode 100755 index 0000000..a2973c7 --- /dev/null +++ b/.gitlab-ci/tagLatestImage.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +VERSION=`echo $CI_COMMIT_TAG | cut -c 2-` +MAJOR=`echo $VERSION | cut -d "." -f 1` +MINOR=`echo $VERSION | cut -d "." -f 2` + +echo "version: $VERSION (major: $MAJOR; minor: $MINOR)" + +docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY +docker pull $IMAGE_NAME:$VERSION +docker tag $IMAGE_NAME:$VERSION $IMAGE_NAME:latest +docker tag $IMAGE_NAME:$VERSION $IMAGE_NAME:$MAJOR +docker tag $IMAGE_NAME:$VERSION $IMAGE_NAME:$MAJOR.$MINOR +docker push $IMAGE_NAME