diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d8329a8ccb421239c56847621ed1cafca4be86c8..3713751cf63938aaba9b168669b971abab823a3f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,10 @@ default:
   tags:
     - shell
 
+variables:
+  IMAGE: "${DOCKER_ORG}/${DOCKER_REPO}"
+  BUILD_TAG: "build"
+
 workflow:
   rules:
     - if: $CI_PIPELINE_SOURCE == "push"
@@ -19,16 +23,8 @@ build_conda:
 
 build_docker:
   stage: build
-  before_script:
-    - export IMAGE="${DOCKER_ORG}/${DOCKER_REPO}"
-    - export BUILD_TAG="build"
-    - echo "IMAGE=$IMAGE" >> build.env
-    - echo "BUILD_TAG=$BUILD_TAG" >> build.env
   script:
     - docker build -t ${IMAGE}:${BUILD_TAG} .
-  artifacts:
-    reports:
-      dotenv: build.env
 
 test_conda:
   stage: test
@@ -43,18 +39,27 @@ test_docker:
   stage: test
   needs:
     - job: build_docker
-      artifacts: true
   script:
     - docker run --rm ${IMAGE}:${BUILD_TAG} tests/test.sh
 
+publish_get_version:
+  stage: publish
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+  script:
+    - export VERSION=$(grep 'version <-' ascii_alignment_pileup.R | cut -f2 -d'"')
+    - echo "VERSION=$VERSION" >> publish.env
+  artifacts:
+    reports:
+      dotenv: publish.env
+
 publish_docker:
   stage: publish
   rules:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
   needs:
-    - job: build_docker
-      artifacts: true
     - job: test_docker
+    - job: publish_get_version
   before_script:
     - export VERSION=$(grep 'version <-' ascii_alignment_pileup.R | cut -f2 -d'"')
   script:
@@ -63,3 +68,22 @@ publish_docker:
     - docker tag ${IMAGE}:${BUILD_TAG} ${IMAGE}:latest
     - docker push ${IMAGE}:${VERSION}
     - docker push ${IMAGE}:latest
+
+publish_release:
+  stage: publish
+  tags:
+    - docker
+  rules:
+    - if: $CI_COMMIT_TAG
+      when: never
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+  needs:
+    - job: publish_get_version
+  image: registry.gitlab.com/gitlab-org/release-cli:latest
+  script:
+    - echo "running release_job for $TAG"
+  release:
+    tag_name: "$VERSION"
+    description: "Release created using the release-cli."
+    ref: "$CI_COMMIT_SHA"
+  allow_failure: true