diff --git a/publish-online.sh b/publish-online.sh
index 855029500bf167f7373b21b938580cfc6992dce6..19904772c40d212a2dbae5b267a7bc1a3692d980 100755
--- a/publish-online.sh
+++ b/publish-online.sh
@@ -1,11 +1,37 @@
 #!/bin/bash -e
 
 FLAMENCO_VERSION="2.0.8"
-echo "Uploading Flamenco Worker $FLAMENCO_VERSION to flamenco.io"
 
 cd dist
+
+# First check that all files are there
+MISSING=0
+for PLAT in linux windows darwin; do
+    PREFIX=flamenco-worker-${FLAMENCO_VERSION}-${PLAT}
+
+    if [ -e ${PREFIX}.zip -o -e ${PREFIX}.tar.gz ]; then
+        continue
+    fi
+
+    echo "Build for platform ${PLAT} incomplete, no such file ${PREFIX}.{zip,tar.gz}"
+    MISSING=1
+done
+
+if [ $MISSING == "1" ]; then
+    exit 2
+fi
+
+if [ -e flamenco-worker-${FLAMENCO_VERSION}.sha256 ]; then
+    echo "Checking pre-existing SHA256 sums"
+    sha256sum -c flamenco-worker-${FLAMENCO_VERSION}.sha256
+    echo
+fi
+
+sha256sum flamenco-worker-${FLAMENCO_VERSION}-*.{zip,tar.gz} > flamenco-worker-${FLAMENCO_VERSION}.sha256
+
+echo "Uploading Flamenco Worker $FLAMENCO_VERSION to flamenco.io"
 rsync \
-    flamenco-worker-${FLAMENCO_VERSION}.zip \
+    flamenco-worker-${FLAMENCO_VERSION}-*.{zip,tar.gz} \
     flamenco-worker-${FLAMENCO_VERSION}.sha256 \
     armadillica@flamenco.io:flamenco.io/download/ -va