From 22977200e4fb3632ae170d5391700e1a6ab812b2 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Thu, 30 Jul 2026 17:12:12 +0200 Subject: [PATCH 1/5] =?UTF-8?q?No=20longer=20build=20images=20automaticall?= =?UTF-8?q?y=20as=20=E2=80=98latest=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 10cf0a50a..f17874813 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -211,7 +211,7 @@ jobs: - docker-build: registry: docker.io,quay.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG:-latest} + tag: ${CIRCLE_TAG} cache_from: docker.io/sameersbn/gitlab:latest extra_build_args: '--build-arg VCS_REF=${CIRCLE_TAG:-${CIRCLE_SHA1}} --build-arg BUILD_DATE="$(date +"%Y-%m-%d %H:%M:%S%:z")"' no_output_timeout: 45m @@ -219,7 +219,7 @@ jobs: - docker-save: registry: docker.io,quay.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG:-latest} + tag: ${CIRCLE_TAG} test: executor: docker/machine @@ -229,7 +229,7 @@ jobs: - run: name: Update tag in docker-compose.yml command: | - sed -i "s|image: sameersbn/gitlab:.*|image: sameersbn/gitlab:${CIRCLE_TAG:-latest}|" docker-compose.yml + sed -i "s|image: sameersbn/gitlab:.*|image: sameersbn/gitlab:${CIRCLE_TAG}|" docker-compose.yml - run: name: Launch gitlab stack command: docker-compose up -d --quiet-pull @@ -259,7 +259,7 @@ jobs: - docker-publish: registry: docker.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG:-latest} + tag: ${CIRCLE_TAG} publish-quay: executor: docker/machine @@ -272,7 +272,7 @@ jobs: - docker-publish: registry: quay.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG:-latest} + tag: ${CIRCLE_TAG} release: executor: From 4b5b9206ca4946c6c1e7cb0ab8c9fb213a1df698 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Thu, 30 Jul 2026 17:16:23 +0200 Subject: [PATCH 2/5] Publish tag latest only on latest tagged master branch --- .circleci/config.yml | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index f17874813..a54190712 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -274,6 +274,45 @@ jobs: image: sameersbn/gitlab tag: ${CIRCLE_TAG} + publish-latest: + machine: + image: ubuntu-2404:edge + steps: + - checkout + - docker-load + + - run: + name: Check if this is newest master tag + command: | + git fetch --tags origin master + + CURRENT=$(git rev-list -n1 "${CIRCLE_TAG}") + MASTER=$(git rev-parse origin/master) + + if [ "$CURRENT" != "$MASTER" ]; then + echo "Current tag is not on HEAD of master." + circleci-agent step halt + fi + + - docker/check: + registry: docker.io + docker-username: DOCKER_LOGIN + docker-password: DOCKER_PASSWORD + + - docker/check: + registry: quay.io + docker-username: DOCKER_LOGIN + docker-password: DOCKER_PASSWORD + + - run: + name: Tag latest + command: | + docker tag docker.io/sameersbn/gitlab:${CIRCLE_TAG} docker.io/sameersbn/gitlab:latest + docker push docker.io/sameersbn/gitlab:latest + + docker tag quay.io/sameersbn/gitlab:${CIRCLE_TAG} quay.io/sameersbn/gitlab:latest + docker push quay.io/sameersbn/gitlab:latest + release: executor: name: go/default @@ -331,6 +370,18 @@ workflows: only: /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/ branches: only: master + - publish-latest: + context: + - dockerhub + - quay + requires: + - publish-dockerhub + - publish-quay + filters: + tags: + only: /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/ + branches: + ignore: /.*/ - release: context: github requires: From 1015034807acfe67d7863f744945965c1dbfc435 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Thu, 30 Jul 2026 17:30:18 +0200 Subject: [PATCH 3/5] Update used orb versions --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a54190712..b434eeda6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 orbs: shellcheck: circleci/shellcheck@3.4.0 docker: circleci/docker@2.8.2 - go: circleci/go@1.11.0 + go: circleci/go@1.12.0 commands: docker-build: From 2b4ea218c503a227855b43eb450d15c788e07437 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Thu, 30 Jul 2026 19:18:08 +0200 Subject: [PATCH 4/5] Use CIRCLE_SHA1 as fallback for CIRCLE_TAG --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b434eeda6..71ddd1057 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -211,7 +211,7 @@ jobs: - docker-build: registry: docker.io,quay.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG} + tag: ${CIRCLE_TAG:-${CIRCLE_SHA1}} cache_from: docker.io/sameersbn/gitlab:latest extra_build_args: '--build-arg VCS_REF=${CIRCLE_TAG:-${CIRCLE_SHA1}} --build-arg BUILD_DATE="$(date +"%Y-%m-%d %H:%M:%S%:z")"' no_output_timeout: 45m @@ -219,7 +219,7 @@ jobs: - docker-save: registry: docker.io,quay.io image: sameersbn/gitlab - tag: ${CIRCLE_TAG} + tag: ${CIRCLE_TAG:-${CIRCLE_SHA1}} test: executor: docker/machine @@ -229,7 +229,7 @@ jobs: - run: name: Update tag in docker-compose.yml command: | - sed -i "s|image: sameersbn/gitlab:.*|image: sameersbn/gitlab:${CIRCLE_TAG}|" docker-compose.yml + sed -i "s|image: sameersbn/gitlab:.*|image: sameersbn/gitlab:${CIRCLE_TAG:-${CIRCLE_SHA1}}|" docker-compose.yml - run: name: Launch gitlab stack command: docker-compose up -d --quiet-pull From 489553bb02d3d4eba0bf321f1789f40cbc5cedd4 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Thu, 30 Jul 2026 19:21:17 +0200 Subject: [PATCH 5/5] Publish images for docker hub and quay in separate jobs --- .circleci/config.yml | 45 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 71ddd1057..d99234a7e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -274,7 +274,7 @@ jobs: image: sameersbn/gitlab tag: ${CIRCLE_TAG} - publish-latest: + publish-dockerhub-latest: machine: image: ubuntu-2404:edge steps: @@ -299,6 +299,32 @@ jobs: docker-username: DOCKER_LOGIN docker-password: DOCKER_PASSWORD + - run: + name: Tag latest + command: | + docker tag docker.io/sameersbn/gitlab:${CIRCLE_TAG} docker.io/sameersbn/gitlab:latest + docker push docker.io/sameersbn/gitlab:latest + + publish-quay-latest: + machine: + image: ubuntu-2404:edge + steps: + - checkout + - docker-load + + - run: + name: Check if this is newest master tag + command: | + git fetch --tags origin master + + CURRENT=$(git rev-list -n1 "${CIRCLE_TAG}") + MASTER=$(git rev-parse origin/master) + + if [ "$CURRENT" != "$MASTER" ]; then + echo "Current tag is not on HEAD of master." + circleci-agent step halt + fi + - docker/check: registry: quay.io docker-username: DOCKER_LOGIN @@ -307,9 +333,6 @@ jobs: - run: name: Tag latest command: | - docker tag docker.io/sameersbn/gitlab:${CIRCLE_TAG} docker.io/sameersbn/gitlab:latest - docker push docker.io/sameersbn/gitlab:latest - docker tag quay.io/sameersbn/gitlab:${CIRCLE_TAG} quay.io/sameersbn/gitlab:latest docker push quay.io/sameersbn/gitlab:latest @@ -370,12 +393,18 @@ workflows: only: /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/ branches: only: master - - publish-latest: - context: - - dockerhub - - quay + - publish-dockerhub-latest: + context: dockerhub requires: - publish-dockerhub + filters: + tags: + only: /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/ + branches: + ignore: /.*/ + - publish-quay-latest: + context: quay + requires: - publish-quay filters: tags: