diff --git a/.drone.yml b/.drone.yml
index 385138d6c862ba5ee1ab68f873672f4693395903..614c0dc40c2b6ee7cef0c0cd8bfbe2fa9f43c280 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -596,6 +596,7 @@ pipeline:
       image: nextcloudci/php7.0:php7.0-19
       commands:
         - phpenmod xdebug
+        - ./tests/drone-wait-objectstore.sh
         - TEST_SELECTION=PRIMARY-${OBJECT_STORE} ./autotest.sh sqlite
         - wget https://codecov.io/bash -O codecov.sh
         - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
@@ -743,6 +744,8 @@ matrix:
     - TESTS: carddavtester-old-endpoint
     - TESTS: object-store
       OBJECT_STORE: s3
+    - TESTS: object-store
+      OBJECT_STORE: swift
     - TESTS: sqlite-php7.0-samba-native
     - TESTS: sqlite-php7.0-samba-non-native
     - TEST: memcache-memcached
@@ -838,6 +841,14 @@ services:
       when:
         matrix:
           OBJECT_STORE: s3
+  dockswift:
+      image: icewind1991/dockswift
+      environment:
+      - INITIALIZE=yes
+      - IPADDRESS=dockswift
+      when:
+        matrix:
+          OBJECT_STORE: swift
   selenium:
     image: selenium/standalone-firefox:2.53.1-beryllium
     environment:
diff --git a/autotest.sh b/autotest.sh
index 7a91b077193e344d3405629d9ffb15e4c48877a8..ff59386e1bc9b8775ef170b97695ed8ae8d5c68a 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -369,6 +369,9 @@ function execute_tests {
 	if [ "$TEST_SELECTION" == "PRIMARY-s3" ]; then
 		GROUP='--group PRIMARY-s3'
 	fi
+	if [ "$TEST_SELECTION" == "PRIMARY-swift" ]; then
+		GROUP='--group PRIMARY-swift'
+	fi
 
 	COVER=''
 	if [ -z "$NOCOVERAGE" ]; then
diff --git a/tests/drone-wait-objectstore.sh b/tests/drone-wait-objectstore.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1e5a13ee55e011172767c7c42997387fb97da652
--- /dev/null
+++ b/tests/drone-wait-objectstore.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ "$OBJECT_STORE" == "swift" ]; then
+    echo "waiting for swift"
+    until curl -I http://dockswift:5000/v3
+    do
+        sleep 2
+    done
+    sleep 30
+fi
diff --git a/tests/lib/Files/ObjectStore/SwiftTest.php b/tests/lib/Files/ObjectStore/SwiftTest.php
index f2aeace769cb6f6ade00c790955610621fc24a27..1ea55a846280b3d31e73f45226cbb3e4a7806e4c 100644
--- a/tests/lib/Files/ObjectStore/SwiftTest.php
+++ b/tests/lib/Files/ObjectStore/SwiftTest.php
@@ -23,6 +23,9 @@ namespace Test\Files\ObjectStore;
 
 use OC\Files\ObjectStore\Swift;
 
+/**
+ * @group PRIMARY-swift
+ */
 class SwiftTest extends ObjectStoreTest {
 	/**
 	 * @return \OCP\Files\ObjectStore\IObjectStore
diff --git a/tests/preseed-config.php b/tests/preseed-config.php
index 7c08003873462417307e8112471762fe62bd8e2e..5fbdc56541721a541ba3470317041cace9fc0382 100644
--- a/tests/preseed-config.php
+++ b/tests/preseed-config.php
@@ -34,3 +34,19 @@ if (getenv('OBJECT_STORE') === 's3') {
 		)
 	];
 }
+if (getenv('OBJECT_STORE') === 'swift') {
+	$swiftHost = getenv('DRONE') === 'true' ? 'dockswift' : 'localhost';
+	$CONFIG['objectstore'] = [
+		'class' => 'OC\\Files\\ObjectStore\\Swift',
+		'arguments' => array(
+			'autocreate' => true,
+			'username' => 'swift',
+			'tenantName' => 'service',
+			'password' => 'swift',
+			'serviceName' => 'swift',
+			'region' => 'regionOne',
+			'url' => "http://$swiftHost:5000/v2.0",
+			'bucket' => 'nextcloud'
+		)
+	];
+}