From 94ef9f34f53fab724cee6a846122b1874938198e Mon Sep 17 00:00:00 2001 From: Hector Date: Mon, 19 Jun 2023 23:03:17 +0100 Subject: [PATCH 1/3] update build pipeline --- .gitlab-ci.yml | 24 ++++++++++++++++++++---- .gitlab-ci/tagLatestImage.sh | 14 ++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 .gitlab-ci/tagLatestImage.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 098e42a..1de8169 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,6 +27,10 @@ test: build: extends: .go_template stage: build + rules: + - if: $CI_COMMIT_TAG =~ /^v.*$/ + when: never + - when: on_success script: - make build artifacts: @@ -46,13 +50,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 100644 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 From 4cd747926dbe402be94889c1a2eb8e581e135bb9 Mon Sep 17 00:00:00 2001 From: Hector Date: Mon, 19 Jun 2023 23:05:57 +0100 Subject: [PATCH 2/3] remove rule for build step --- .gitlab-ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1de8169..0c9342f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,10 +27,6 @@ test: build: extends: .go_template stage: build - rules: - - if: $CI_COMMIT_TAG =~ /^v.*$/ - when: never - - when: on_success script: - make build artifacts: From 857cedaa0cd26b49bbce808b4458c7bd32dc9cb0 Mon Sep 17 00:00:00 2001 From: Hector Date: Tue, 20 Jun 2023 08:13:00 +0100 Subject: [PATCH 3/3] update script permissions --- .gitlab-ci/tagLatestImage.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .gitlab-ci/tagLatestImage.sh diff --git a/.gitlab-ci/tagLatestImage.sh b/.gitlab-ci/tagLatestImage.sh old mode 100644 new mode 100755