aboutsummaryrefslogtreecommitdiff
path: root/.ci/travis-release.sh
diff options
context:
space:
mode:
Diffstat (limited to '.ci/travis-release.sh')
-rwxr-xr-x.ci/travis-release.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/.ci/travis-release.sh b/.ci/travis-release.sh
new file mode 100755
index 0000000..60d1c62
--- /dev/null
+++ b/.ci/travis-release.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+set -e -x
+
+
+if [ -z "${TRAVIS_TAG}" ]; then
+ # Not a release
+ exit 0
+fi
+
+
+PACKAGE_VERSION=$(python ".ci/package-version.py")
+PYPI_VERSION=$(python ".ci/pypi-check.py" "${PYMODULE}")
+
+if [ "${PACKAGE_VERSION}" == "${PYPI_VERSION}" ]; then
+ echo "${PYMODULE}-${PACKAGE_VERSION} is already published on PyPI"
+ exit 0
+fi
+
+# Check if all expected wheels have been built and uploaded.
+release_platforms=(
+ "macosx_10_??_x86_64"
+ "manylinux1_i686"
+ "manylinux1_x86_64"
+ "win32"
+ "win_amd64"
+)
+
+P="${PYMODULE}-${PACKAGE_VERSION}"
+expected_wheels=()
+
+for pyver in ${RELEASE_PYTHON_VERSIONS}; do
+ pyver="${pyver//./}"
+ abitag="cp${pyver}-cp${pyver}m"
+ for plat in "${release_platforms[@]}"; do
+ expected_wheels+=("${P}-${abitag}-${plat}.whl")
+ done
+done
+
+rm -rf dist/*.whl dist/*.tar.*
+python setup.py sdist
+python ".ci/s3-download-release.py" --destdir=dist/ "${P}"
+
+_file_exists() { [[ -f $1 ]]; }
+
+for distfile in "${expected_wheels[@]}"; do
+ if ! _file_exists dist/${distfile}; then
+ echo "Expected wheel ${distfile} not found."
+ exit 1
+ fi
+done
+
+python -m twine upload dist/*.whl dist/*.tar.*
+
+.ci/travis-publish-docs.sh