diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000000000000000000000000000000000000..69b7fd0af991145abb5455a4f27a7402e07edab8
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,29 @@
+name: Test
+
+on:
+  pull_request:
+    branches:
+    - master
+  push:
+    branches:
+    - master
+
+jobs:
+  build:
+    runs-on: ubuntu-18.04
+    steps:
+    - uses: actions/checkout@v1
+    - name: Install toolchain
+      uses: actions-rs/toolchain@v1
+      with:
+        profile: minimal
+        toolchain: nightly-2019-08-19
+        components: rustfmt
+        target: wasm32-unknown-unknown
+        default: true
+    - name: Check format
+      run: cargo fmt --all -- --check
+    - name: Build
+      run: cargo build --locked
+    - name: Run tests
+      run: cargo test --all