diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml
deleted file mode 100644
index e5434fa59368386642c682a3ebeae6bad6b352ca..0000000000000000000000000000000000000000
--- a/.github/workflows/deploy.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: deploy
-
-on:
-  push:
-    branches:
-      - master
-    tags:
-      - "*"
-
-jobs:
-  deploy:
-    runs-on: ubuntu-latest
-    if: startsWith(github.ref, 'refs/tags/')
-    steps:
-      - uses: actions/checkout@v2
-      - name: Set env
-        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-      - name: Build container image
-        uses: redhat-actions/buildah-build@v2.5
-        with:
-          image: quay.io/redhatqe/openstack-gitlab-runner
-          tags: ${{ env.RELEASE_VERSION }} latest
-          dockerfiles: Containerfile
-          oci: true
-      - name: Push image to registry
-        uses: redhat-actions/push-to-registry@v2.2
-        with:
-          image: openstack-gitlab-runner
-          tags: ${{ env.RELEASE_VERSION }} latest
-          registry: quay.io/redhatqe
-          username: ${{ secrets.QUAY_IO_USERNAME }}
-          password: ${{ secrets.QUAY_IO_TOKEN }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f2f2d765226901fe83fe76fc13f3327b1bafcef5
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,42 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+# GitHub recommends pinning actions to a commit SHA.
+# To get a newer version, you will need to update the SHA.
+# You can also reference a tag or branch, but the action may change without warning.
+
+name: Publish Docker image
+
+on:
+  release:
+    types: [published]
+
+jobs:
+  push_to_registry:
+    name: Push Docker image to Docker Hub
+    runs-on: ubuntu-latest
+    steps:
+      - name: Check out the repo
+        uses: actions/checkout@v3
+      
+      - name: Log in to Docker Hub
+        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
+        with:
+          username: ${{ secrets.DOCKER_USERNAME }}
+          password: ${{ secrets.DOCKER_PASSWORD }}
+      
+      - name: Extract metadata (tags, labels) for Docker
+        id: meta
+        uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
+        with:
+          images: statist48/openstack-gitlab-executor
+      
+      - name: Build and push Docker image
+        uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
+        with:
+          context: .
+          push: true
+          tags: ${{ steps.meta.outputs.tags }}
+          labels: ${{ steps.meta.outputs.labels }}