diff --git a/.circleci/config.yml b/.circleci/config.yml
index 3c48aed6348f9a09c4f5f758237e9b3deba74c25..7740e09865118bec4075117f3205e50b76ad87e7 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -5,6 +5,9 @@ executors:
   python:
     docker:
       - image: cimg/python:3.9
+  publisher:
+    docker:
+      - image: quay.io/cloudalchemy/publisher:latest
 
 jobs:
   lint:
@@ -42,48 +45,14 @@ jobs:
            echo 'Not running latest on PR'
          fi
   release:
-    executor: python
+    executor: publisher
     environment:
-      GIT_MAIL: cloudalchemybot@gmail.com
-      GIT_USER: cloudalchemybot
-      GIT_COMMIT_DESC: git log --format=%B -n 1 ${CIRCLE_SHA1}
+      PROJECT_USERNAME: $CIRCLE_PROJECT_USERNAME
+      PROJECT_REPONAME: $CIRCLE_PROJECT_REPONAME
     steps:
       - checkout
-      - setup_remote_docker
-      - run: pip install git-semver
-      - run: git config --global user.email "${GIT_MAIL}"
-      - run: git config --global user.name "${GIT_USER}"
-      - run: |
-          GIT_TAG=none
-          case "$(git log --format=oneline -n 1 $CIRCLE_SHA1)" in
-            *"[patch]"*|*"[fix]"*|*"[bugfix]"* )   GIT_TAG=$(git semver --next-patch) ;;
-            *"[minor]"*|*"[feat]"*|*"[feature]"* ) GIT_TAG=$(git semver --next-minor) ;;
-            *"[major]"*|*"[breaking change]"* )    GIT_TAG=$(git semver --next-major) ;;
-            *) echo "Keyword not detected. Doing nothing" && circleci-agent step halt ;;
-          esac
-          echo "GIT_TAG=${GIT_TAG}" >> $BASH_ENV
-      - run: |
-          docker run -it --rm \
-           -v "${CIRCLE_WORKING_DIRECTORY}:/role" \
-           -w "/role" \
-           ferrarimarco/github-changelog-generator:1.15.2 \
-           --user "${CIRCLE_PROJECT_USERNAME}" \
-           --project "${CIRCLE_PROJECT_REPONAME}" \
-           --token "${GH_TOKEN}" \
-           --release-url "https://galaxy.ansible.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME#ansible-}" \
-           --unreleased-label "**Next release**" --no-compare-link \
-           --future-release "${GIT_TAG}"
-      - run: git add CHANGELOG.md
-      - run: git commit -m "[ci skip] Automatic changelog update"
-      - run: git push "https://${GH_TOKEN}:@${GIT_URL}" || circleci-agent step halt
-      - run: |
-          ghr \
-            -t ${GH_TOKEN} \
-            -u ${CIRCLE_PROJECT_USERNAME} \
-            -r ${CIRCLE_PROJECT_REPONAME} \
-            -n ${GIT_TAG} \
-            -b "$(sed -n -e '/## \[0.22.0\]/,/## \[/ p' CHANGELOG.md | sed -e '$ d')" \
-            ${GIT_TAG}
+      - run: create_release
+
   galaxy:
     executor: python
     steps: