diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c96e1b70b27eb398f5cebcc7a5d9d26928cc8d0f
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,83 @@
+language: php
+os: linux
+dist: xenial
+
+cache:
+  directories:
+    - $HOME/.composer/cache
+    - $HOME/.npm
+
+addons:
+  postgresql: "9.6"
+
+services:
+  - mysql
+  - docker
+
+php:
+  - 7.2
+  - 7.3
+  - 7.4
+
+env:
+  jobs:
+    - DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE
+    - DB=pgsql MOODLE_BRANCH=MOODLE_38_STABLE
+    - DB=pgsql MOODLE_BRANCH=MOODLE_39_STABLE
+    - DB=pgsql MOODLE_BRANCH=master
+    - DB=mysqli MOODLE_BRANCH=MOODLE_37_STABLE
+    - DB=mysqli MOODLE_BRANCH=MOODLE_38_STABLE
+    - DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE
+    - DB=mysqli MOODLE_BRANCH=master
+
+before_install:
+  - phpenv config-rm xdebug.ini
+  - cd ../..
+  - composer selfupdate
+  - composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3
+  - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH"
+  - moodle-plugin-ci add-plugin Opencast-Moodle/moodle-block_opencast
+  - moodle-plugin-ci add-plugin Opencast-Moodle/moodle-tool_opencast
+
+jobs:
+  fast_finish: true
+  include:
+    # Prechecks against latest Moodle stable only.
+    - stage: static
+      php: 7.4
+      env: DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE
+      install:
+        - moodle-plugin-ci install --no-init
+      script:
+        - moodle-plugin-ci phplint
+        - moodle-plugin-ci phpcpd
+        - moodle-plugin-ci phpmd
+        - moodle-plugin-ci phpdoc
+        - moodle-plugin-ci codechecker
+        - moodle-plugin-ci savepoints
+        - moodle-plugin-ci mustache
+        - moodle-plugin-ci grunt
+        - moodle-plugin-ci validate
+    # Smaller build matrix for development builds
+    - stage: develop
+      php: 7.4
+      env: DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE
+  exclude:
+    - php: 7.4
+      env: DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE
+    - php: 7.4
+      env: DB=mysqli MOODLE_BRANCH=MOODLE_37_STABLE
+
+# Unit tests and behat tests against full matrix.
+install:
+  - moodle-plugin-ci install
+script:
+  - moodle-plugin-ci phpunit --coverage-clover
+  - moodle-plugin-ci behat --profile chrome
+
+stages:
+  - static
+  - name: develop
+    if: branch != master AND (type != pull_request OR head_branch != master) AND (tag IS blank)
+  - name: test
+    if: branch = master OR (type = pull_request AND head_branch = master) OR (tag IS present)