diff --git a/source/guides/github-actions-ci-cd-sample/publish-to-test-pypi.yml b/source/guides/github-actions-ci-cd-sample/publish-to-test-pypi.yml
index 20ed37740..71aca9881 100644
--- a/source/guides/github-actions-ci-cd-sample/publish-to-test-pypi.yml
+++ b/source/guides/github-actions-ci-cd-sample/publish-to-test-pypi.yml
@@ -73,6 +73,11 @@ jobs:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
+ - name: Create GitHub Release
+ run: >-
+ gh release create
+ '${{ github.ref_name }}'
+ --notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
diff --git a/source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst b/source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst
index f572e4096..33cc88017 100644
--- a/source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst
+++ b/source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst
@@ -163,8 +163,13 @@ Signing the distribution packages
The following job signs the distribution packages with `Sigstore`_,
the same artifact signing system `used to sign CPython `_.
-It uses the `sigstore/gh-action-sigstore-python GitHub Action`_,
-and then uploads them to a GitHub Release.
+Firstly, it uses the `sigstore/gh-action-sigstore-python GitHub Action`_
+to sign the distribution packages. In the next step, an empty GitHub Release
+from the current tag is created using the ``gh`` CLI. Note this step can be further
+customised. See the `gh release documentation `_
+as a reference.
+
+Finally, the signed distributions are uploaded to the GitHub Release.
.. literalinclude:: github-actions-ci-cd-sample/publish-to-test-pypi.yml
:language: yaml