diff --git a/roles/build-python-release/README.rst b/roles/build-python-release/README.rst
index e67681d37..fc86259bd 100644
--- a/roles/build-python-release/README.rst
+++ b/roles/build-python-release/README.rst
@@ -8,6 +8,11 @@ Build sdist and wheel for Python projects.
    The python interpreter to use. Set it to "python3" to use python 3,
    for example.
 
+.. zuul:rolevar:: build_wheel
+   :default: true
+
+   Whether to build a wheel. Set to false to just build an sdist tarball.
+
 .. zuul:rolevar:: bdist_wheel_xargs
    :default: ''
 
diff --git a/roles/build-python-release/defaults/main.yaml b/roles/build-python-release/defaults/main.yaml
index 9edcde0bc..5ad6efac9 100644
--- a/roles/build-python-release/defaults/main.yaml
+++ b/roles/build-python-release/defaults/main.yaml
@@ -1,3 +1,4 @@
 zuul_work_dir: "{{ zuul.project.src_dir }}"
 release_python: "python"
 bdist_wheel_xargs: ""
+build_wheel: true
diff --git a/roles/build-python-release/tasks/main.yaml b/roles/build-python-release/tasks/main.yaml
index fd7b7084d..9e6b8be18 100644
--- a/roles/build-python-release/tasks/main.yaml
+++ b/roles/build-python-release/tasks/main.yaml
@@ -2,3 +2,9 @@
   command: "{{ release_python }} setup.py sdist bdist_wheel {{ bdist_wheel_xargs }}"
   args:
     chdir: "{{ zuul_work_dir }}"
+  when: build_wheel
+- name: Just build a tarball
+  command: "{{ release_python }} setup.py sdist"
+  args:
+    chdir: "{{ zuul_work_dir }}"
+  when: not build_wheel