Add Dart dev and beta channels (#625)

diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml
index a31968c..cf1705e 100644
--- a/.github/workflows/dart.yml
+++ b/.github/workflows/dart.yml
@@ -6,6 +6,9 @@
     branches: [master]
   pull_request:
     branches: [master]
+  workflow_dispatch:
+  schedule:
+    - cron: "0 0 * * *" # Every day at midnight
 
 jobs:
   # Check code formating, static analysis, and build on a single OS (linux)
@@ -13,8 +16,15 @@
   analyze:
     runs-on: ubuntu-latest
     strategy:
+      fail-fast: false
       matrix:
-        sdk: [stable]
+        include:
+          - sdk: dev
+            allow_failure: true
+          - sdk: beta
+            allow_failure: true
+          - sdk: stable
+            allow_failure: false
     steps:
       - uses: actions/checkout@v2
       - uses: cedx/setup-dart@v2
@@ -26,8 +36,6 @@
         run: dart --version
       - name: Install dependencies
         run: dart pub get
-      - name: Check formatting
-        run: dart format --output=none --set-exit-if-changed .
       - name: Analyze code (lib and test)
         run: dart analyze .
       - name: Analyze code (example)
@@ -36,7 +44,6 @@
           echo [Analyzing example]
           dart pub get
           dart analyze .
-        shell: bash
       - name: Prepare Flutter
         run: |
           git submodule init
@@ -44,12 +51,9 @@
           export PATH=$PATH:$PWD/flutter/bin
           flutter doctor -v
           flutter config --enable-web
-      - name: Prepare to run unit tests (but do not actually run tests).
+      - name: Run tests
         run: |
-          dart pub global activate protoc_plugin
           export PATH=$PATH:$HOME/.pub-cache/bin
-          dart pub run grinder buildbot
-      - name: Validate storage artifacts
-        run: dart pub run grinder validate-storage-artifacts
-      - name: run tests
-        run: dart test/all.dart
+          dart pub global activate protoc_plugin
+          ./tool/travis.sh
+        continue-on-error: ${{ matrix.allow_failure }}
diff --git a/.travis.yml b/.travis.yml
index d06f9bd..4f1eb4f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@
   # Keep this value aligned with min SDK value in pubspec.yaml and FROM line of Dockerfile
   - "2.10.4"
 
-# Use Ubuntu 18.04 (Bionic Beaver) 
+# Use Ubuntu 18.04 (Bionic Beaver)
 # https://docs.travis-ci.com/user/reference/overview/#virtualization-environments
 dist: bionic
 os: linux
diff --git a/tool/grind.dart b/tool/grind.dart
index 483b305..d9ac1db 100644
--- a/tool/grind.dart
+++ b/tool/grind.dart
@@ -297,16 +297,16 @@
     arguments: ['--dart_out=lib/src', 'protos/dart_services.proto'],
   );
 
-  // reformat generated classes so travis dartfmt test doesn't fail
+  // reformat generated classes so travis dart format test doesn't fail
   await runWithLogging(
-    'dartfmt',
-    arguments: ['--fix', '-w', 'lib/src/protos'],
+    'dart',
+    arguments: ['format', '--fix', 'lib/src/protos'],
   );
 
   // And reformat again, for $REASONS
   await runWithLogging(
-    'dartfmt',
-    arguments: ['--fix', '-w', 'lib/src/protos'],
+    'dart',
+    arguments: ['format', '--fix', 'lib/src/protos'],
   );
 
   // generate common_server_proto.g.dart
diff --git a/tool/travis.sh b/tool/travis.sh
index b86d4a5..b674822 100755
--- a/tool/travis.sh
+++ b/tool/travis.sh
@@ -8,17 +8,17 @@
 set -e
 
 # Run pub get to fetch packages.
-pub get
+dart pub get
 
 # Prepare to run unit tests (but do not actually run tests).
-pub run grinder buildbot
+dart pub run grinder buildbot
 
 # Ensure that we've uploaded the compilation artifacts to google storage.
-pub run grinder validate-storage-artifacts
+dart pub run grinder validate-storage-artifacts
 
 # Enforce dart formatting on lib, test and tool directories.
-echo -n "Files that need dartfmt: "
-dartfmt --dry-run --set-exit-if-changed lib test tool
+echo -n "Files that need dart format: "
+dart format --set-exit-if-changed lib test tool
 echo "All clean"
 
 # Gather coverage and upload to Coveralls.