diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e9d270097c7b7c5c66808a2c005293e4b95a0254..8bd29088185b3ceefa060a1b1e755aac0d603993 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,19 +9,3 @@ wheel/manylinux2014:
   image: quay.io/pypa/manylinux2014_x86_64
   script:
     - bash --login tools/pylib/_boutcore_build/build-wheels.sh manylinux2014_x86_64
-  artifacts:
-    paths:
-      - wheelhouse/*whl
-      - dist/*.tar.*
-
-
-deploy/pypi:
-  stage: deploy
-  image: python:slim
-  script:
-    # TWINE_USERNAME and TWINE_PASSWORD are provided by CI secret variables
-    - pip install twine
-    - ls -l
-    - twine upload --repository testpypi wheelhouse/*.whl
-  needs:
-    - wheel/manylinux2014
diff --git a/tools/pylib/_boutcore_build/build-wheels.sh b/tools/pylib/_boutcore_build/build-wheels.sh
index 8ee33d550f64af072b86b2783c43f1d6423a223f..ed32427f0f7389c1e9df04a0e46862371b66a9c1 100644
--- a/tools/pylib/_boutcore_build/build-wheels.sh
+++ b/tools/pylib/_boutcore_build/build-wheels.sh
@@ -51,5 +51,5 @@ done
 mkdir -p wheelhouse
 rm -f wheelhouse/*whl
 cp /io/wheelhouse/*whl wheelhouse/
-mv wheelhouse ../../..
-mv dist ../../..
+$PYBIN/pip install twine
+twine upload --repository testpypi wheelhouse/*.whl dist/*.tar*