diff --git a/Jenkinsfile b/Jenkinsfile
index c548e323c08404325cb3b7d9ec84e0a6315bd8fc..4fdb8bd85f9831dad03bd8e5a766be792fe40316 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,11 +1,14 @@
 pipeline {
-    agent { label 'docker' }
+    agent { label 'docker-compose' }
+
+    environment {
+        GIT_TAG = sh(returnStdout: true, script: 'git describe --exact-match || true').trim()
+    }
 
     stages {
         stage('Refresh') {
             steps {
                 slackSend (color: 'good', message: "STARTED: <${env.BUILD_URL}|${env.JOB_NAME} [${env.BUILD_NUMBER}]>")
-                sh 'git fetch --tags'
                 sh 'make clean'
                 sh 'make refresh'
             }
@@ -26,20 +29,19 @@ pipeline {
             }
         }
         stage('Push') {
+            when {
+                expression { "$GIT_TAG" != "" }
+            }
             steps {
                 sh 'make tag'
                 sh 'make push'
             }
         }
-        stage('Clean') {
-            steps {
-                sh 'make clean'
-            }
-        }
     }
 
     post {
         always {
+            sh 'make clean'
             /* clean up the workspace */
             deleteDir()
         }