Add Github Actions CI (#318)

diff --git a/packages/flutter_markdown/.cirrus.yml b/packages/flutter_markdown/.cirrus.yml
deleted file mode 100644
index 8918898..0000000
--- a/packages/flutter_markdown/.cirrus.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-container:
-  image: cirrusci/flutter:stable
-
-test_task:
-  pub_cache:
-    folder: ~/.pub-cache
-  upgrade_script:
-    - flutter channel stable
-    - flutter upgrade
-  test_script: flutter test
-
-analyze_task:
-  pub_cache:
-    folder: ~/.pub-cache
-  upgrade_script:
-    - flutter channel stable
-    - flutter upgrade
-  analyze_script: flutter analyze
\ No newline at end of file
diff --git a/packages/flutter_markdown/.github/workflows/flutter_ci.yml b/packages/flutter_markdown/.github/workflows/flutter_ci.yml
new file mode 100644
index 0000000..71eb5a1
--- /dev/null
+++ b/packages/flutter_markdown/.github/workflows/flutter_ci.yml
@@ -0,0 +1,34 @@
+name: flutter_markdown
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+  workflow_dispatch:
+  schedule:
+    - cron: '0 0 * * *' # Every day at midnight
+
+defaults:
+  run:
+    shell: bash
+
+jobs:
+  flutter-tests:
+    name: Test Flutter ${{ matrix.flutter_version }} on ${{ matrix.os }}
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        flutter_version: [dev, beta, stable]
+        os: [ubuntu-latest, macos-latest, windows-latest]
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-java@v1
+        with:
+          java-version: '12.x'
+      - uses: subosito/flutter-action@v1
+        with:
+          channel: ${{ matrix.flutter_version }}
+      - run: flutter analyze
+      - run: flutter test
diff --git a/packages/flutter_markdown/.travis.yml b/packages/flutter_markdown/.travis.yml
deleted file mode 100644
index 1244b12..0000000
--- a/packages/flutter_markdown/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-os: linux
-before_script:
-  - git clone --branch stable https://github.com/flutter/flutter.git
-  - export PATH=`pwd`/flutter/bin:`pwd`/flutter/bin/cache/dart-sdk/bin:$PATH
-  - flutter doctor
-script:
-  - flutter test
diff --git a/packages/flutter_markdown/example/lib/demos/basic_markdown_demo.dart b/packages/flutter_markdown/example/lib/demos/basic_markdown_demo.dart
index 557c294..c1fa664 100644
--- a/packages/flutter_markdown/example/lib/demos/basic_markdown_demo.dart
+++ b/packages/flutter_markdown/example/lib/demos/basic_markdown_demo.dart
@@ -155,7 +155,7 @@
           ),
         ),
         actions: [
-          FlatButton(
+          TextButton(
             onPressed: () => Navigator.of(context).pop(),
             child: Text('OK'),
           )
diff --git a/packages/flutter_markdown/example/lib/screens/demo_screen.dart b/packages/flutter_markdown/example/lib/screens/demo_screen.dart
index 3dbd22d..17049a5 100644
--- a/packages/flutter_markdown/example/lib/screens/demo_screen.dart
+++ b/packages/flutter_markdown/example/lib/screens/demo_screen.dart
@@ -147,7 +147,7 @@
           ),
         ),
         actions: [
-          FlatButton(
+          TextButton(
             onPressed: () => Navigator.of(context).pop(),
             child: Text('OK'),
           )
diff --git a/packages/flutter_markdown/pubspec.lock b/packages/flutter_markdown/pubspec.lock
index 2e30b39..7411bad 100644
--- a/packages/flutter_markdown/pubspec.lock
+++ b/packages/flutter_markdown/pubspec.lock
@@ -28,14 +28,14 @@
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.5.0-nullsafety.1"
+    version: "2.5.0-nullsafety.3"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0-nullsafety.3"
   build:
     dependency: transitive
     description:
@@ -63,14 +63,14 @@
       name: characters
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.3"
+    version: "1.1.0-nullsafety.5"
   charcode:
     dependency: transitive
     description:
       name: charcode
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0-nullsafety.3"
   cli_util:
     dependency: transitive
     description:
@@ -84,7 +84,7 @@
       name: clock
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0-nullsafety.3"
   code_builder:
     dependency: transitive
     description:
@@ -98,7 +98,7 @@
       name: collection
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.15.0-nullsafety.3"
+    version: "1.15.0-nullsafety.5"
   convert:
     dependency: transitive
     description:
@@ -133,7 +133,7 @@
       name: fake_async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0-nullsafety.3"
   fixnum:
     dependency: transitive
     description:
@@ -192,14 +192,14 @@
       name: matcher
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.12.10-nullsafety.1"
+    version: "0.12.10-nullsafety.3"
   meta:
     dependency: "direct main"
     description:
       name: meta
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
+    version: "1.3.0-nullsafety.6"
   mockito:
     dependency: "direct dev"
     description:
@@ -234,7 +234,7 @@
       name: path
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.1"
+    version: "1.8.0-nullsafety.3"
   pedantic:
     dependency: transitive
     description:
@@ -274,56 +274,56 @@
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.8.0-nullsafety.2"
+    version: "1.8.0-nullsafety.4"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.10.0-nullsafety.1"
+    version: "1.10.0-nullsafety.6"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.1"
+    version: "2.1.0-nullsafety.3"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.1.0-nullsafety.1"
+    version: "1.1.0-nullsafety.3"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.2.0-nullsafety.1"
+    version: "1.2.0-nullsafety.3"
   test_api:
     dependency: transitive
     description:
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.2.19-nullsafety.2"
+    version: "0.2.19-nullsafety.6"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.3.0-nullsafety.3"
+    version: "1.3.0-nullsafety.5"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.0-nullsafety.3"
+    version: "2.1.0-nullsafety.5"
   watcher:
     dependency: transitive
     description:
@@ -339,5 +339,5 @@
     source: hosted
     version: "2.2.1"
 sdks:
-  dart: ">=2.10.0-110 <2.11.0"
-  flutter: ">=1.17.0 <2.0.0"
+  dart: ">=2.12.0-0.0 <3.0.0"
+  flutter: ">=1.17.0"