diff --git a/.github/release.eloquent.yml b/.github/release.eloquent.yml
new file mode 100644
index 0000000000000000000000000000000000000000..321bcbbd9d9a34763e6bad54fa31af8c4745583f
--- /dev/null
+++ b/.github/release.eloquent.yml
@@ -0,0 +1,2 @@
+assets:
+  - path: umockdev-*.tar.xz
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 538b013dbda12f4cd6bf000a246ddd46a7ca98dd..0881480deb1b81823d928bc8de78083c560fe1c1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,6 +10,9 @@ jobs:
     steps:
       - name: Clone repository
         uses: actions/checkout@v2
+        with:
+          # need this to also fetch tags
+          fetch-depth: 0
 
       - name: Workaround for https://github.com/actions/checkout/pull/697
         run: git fetch --force origin $(git describe --tags):refs/tags/$(git describe --tags)
@@ -19,9 +22,6 @@ jobs:
         run: sudo PUBLISH_TAR=1 tests/run-apt
 
       - name: Create GitHub release
-        uses: docker://antonyurchenko/git-release:latest
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          CHANGELOG_FILE: "NEWS"
+        uses: eloquent/github-release-action@v2
         with:
-          args: umockdev-*.tar.xz
+          prerelease: "false"
diff --git a/NEWS b/NEWS
index a7fc629bddcebb10d2e919e2ee7da38a8e55b080..4b026e55c7ce4c1d64d84c1b621117ed3aa64ea5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+OBSOLETE: Release news of newer versions are contained in the tag descriptions.
+
 ## [0.17.13] - 2022-05-30
 - preload: Wrap fstatfs(), to work with systemd 251 also with Python tests
 - Fix tests in Gentoo sandbox build
diff --git a/do-release b/do-release
deleted file mode 100755
index b9e0f0312c4cb3a8b4e82461cb8693c6c295c69a..0000000000000000000000000000000000000000
--- a/do-release
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-set -e
-
-# This script does all the steps necessary for doing a new upstream release. It
-# should solely be used by upstream developers, distributors do not need to
-# worry about it.
-
-# check for anything uncommitted
-if LC_MESSAGES=C git status | grep -Eiq 'modified|untracked'; then
-    echo "untracked/modified files, see git status" >&2
-    exit 1
-fi
-
-git clean -fdx
-
-# update NEWS
-version=$(sed -rn '1 { s/^.*\[([0-9.]+)\].*/\1/; p }' NEWS)
-[ -n "$version" ] || {
-    echo "failed to parse version" >&2
-    exit 1
-}
-sed -i "s/- UNRELEASED/- $(date '+%Y-%m-%d')/" NEWS
-
-# commit the release and tag
-git commit -a -m "release $version"
-changes=$(sed -n '/^$/ q; /^- / p' NEWS)
-printf "$version\n\n$changes\n" | git tag -s -F- $version
-git push
-git push --tags