diff --git a/docker/Jenkinsfile b/docker/Jenkinsfile
new file mode 100644
index 0000000000000000000000000000000000000000..a43a296a28dd5a8b9b2d1285dbc3cbd5a24013d8
--- /dev/null
+++ b/docker/Jenkinsfile
@@ -0,0 +1,44 @@
+pipeline {
+    agent any
+    environment {
+        VIVADO_PATH='/opt/Xilinx/Vivado/2019.1'
+        DOCKER_TAG='finn_ci'
+        DOCKER_INST_NAME='finn_ci'
+        BUILD_PATH='/tmp/finn_ci'
+        VIVADO_IP_CACHE='$BUILD_PATH/vivado_ip_cache'
+        DOCKER_CMD="source /root/.bashrc; python setup.py test"
+    }
+    stages {
+        stage("Clone") {
+            steps {
+                git branch: 'feature/docker_reorg', url: 'https://github.com/Xilinx/finn.git'
+            }
+        }
+      stage('Build') {
+            steps {
+                sh """
+                docker build --no-cache -t $DOCKER_TAG -f docker/Dockerfile.finn_ci \
+                --build-arg BUILD_PATH=$BUILD_PATH \
+                --build-arg VIVADO_PATH=$VIVADO_PATH \
+                docker/
+                """
+            }
+        }
+        stage('Test') {
+            steps {
+                sh """
+                docker run --name $DOCKER_INST_NAME \
+                --hostname $DOCKER_INST_NAME \
+                -e "XILINX_VIVADO=$VIVADO_PATH" \
+                -e "SHELL=/bin/bash" \
+                -v $VIVADO_PATH:$VIVADO_PATH:ro \
+                -e VIVADO_PATH=$VIVADO_PATH \
+                -e FINN_INST_NAME=$DOCKER_INST_NAME \
+                -e FINN_ROOT="/workspace/finn" \
+                -e VIVADO_IP_CACHE="$VIVADO_IP_CACHE" \
+                $DOCKER_TAG bash -c "$DOCKER_CMD"
+                """
+            }
+        }
+    }
+}