Move to GitHub actions (#247)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..bea644c
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,39 @@
+name: ci
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        sdk: [2.12.0, dev]
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: dart-lang/setup-dart@v1.0
+
+      - run: dart pub get
+        id: install
+      - run: dart format --output=none --set-exit-if-changed .
+        if: always() && steps.install.outcome == 'success'
+      - run: dart analyze --fatal-infos
+        if: always() && steps.install.outcome == 'success'
+      - run: dart test
+        if: matrix.sdk != 'dev' && steps.install.outcome == 'success'
+
+      - run: dart test --coverage coverage
+        if: matrix.sdk == 'dev' && steps.install.outcome == 'success'
+      - run: pub global activate coverage
+        if: matrix.sdk == 'dev'
+      - run: pub global run coverage:format_coverage --packages=.packages -i coverage --report-on=lib --lcov > coverage/lcov.info
+        if: matrix.sdk == 'dev'
+      - uses: coverallsapp/github-action@master
+        with:
+          github-token: ${{ secrets.GITHUB_TOKEN }}
+        if: matrix.sdk == 'dev'
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index cd9459e..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: dart
-
-dart:
-  - 2.12.0
-  - dev
-
-script: ./tool/travis.sh
-
-# Only building master means that we don't run two builds for each pull request.
-branches:
-  only: [master]
-
-cache:
-  directories:
-  - $HOME/.pub-cache
diff --git a/README.md b/README.md
index 86de3aa..eba244e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![Build Status](https://travis-ci.org/google/vector_math.dart.svg?branch=master)](https://travis-ci.org/google/vector_math.dart)
+[![CI](https://github.com/google/vector_math.dart/workflows/ci/badge.svg?branch=master)](https://github.com/google/vector_math.dart/actions?query=workflow%3Aci+branch%3Amaster)
 [![Coverage Status](https://coveralls.io/repos/google/vector_math.dart/badge.svg?branch=master)](https://coveralls.io/r/google/vector_math.dart?branch=master)
 
 ## Introduction