Switch to use GitHub Actions instead of Travis, update analysis options (#67)
This switches the repo to use GitHub Actions instead of Travis, and updates the analysis options to use the standard Dart lints.
diff --git a/.github/workflows/process.yml b/.github/workflows/process.yml
new file mode 100644
index 0000000..dfcf6cd
--- /dev/null
+++ b/.github/workflows/process.yml
@@ -0,0 +1,38 @@
+name: Process Package
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+ workflow_dispatch:
+
+jobs:
+ correctness:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
+ - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
+ with:
+ sdk: dev
+ - name: Install dependencies
+ run: dart pub upgrade
+ - name: Verify formatting
+ run: dart format --output=none --set-exit-if-changed .
+ - name: Analyze project source
+ run: dart analyze --fatal-infos
+ test:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ sdk: [stable, beta, dev]
+ steps:
+ - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
+ - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
+ with:
+ sdk: ${{ matrix.sdk }}
+ - name: Install dependencies
+ run: dart pub upgrade
+ - name: Run Tests
+ run: dart test
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 5722c5b..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: dart
-sudo: false
-dart:
- - dev
-install:
- - gem install coveralls-lcov
-before_script:
- - ./dev/setup.sh
-script:
- - ./dev/travis.sh
-after_success:
- - (coveralls-lcov coverage/lcov.info)
-cache:
- directories:
- - $HOME/.pub-cache
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 2c72e4b..8fbd2e4 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,67 +1,6 @@
+include: package:lints/recommended.yaml
+
analyzer:
- enable-experiment:
- - non-nullable
- strong-mode:
- implicit-dynamic: false
- implicit-casts: false
errors:
- missing_required_param: warning
- missing_return: warning
# Allow having TODOs in the code
todo: ignore
-
-linter:
- rules:
- # these rules are documented on and in the same order as
- # the Dart Lint rules page to make maintenance easier
- # http://dart-lang.github.io/linter/lints/
-
- # === error rules ===
- - avoid_empty_else
- - comment_references
- - cancel_subscriptions
- - close_sinks
- - control_flow_in_finally
- - empty_statements
- - hash_and_equals
- - invariant_booleans
- - iterable_contains_unrelated_type
- - list_remove_unrelated_type
- - literal_only_boolean_expressions
- - test_types_in_equals
- - throw_in_finally
- - unrelated_type_equality_checks
- - valid_regexps
-
- # === style rules ===
- - always_declare_return_types
- - always_specify_types
- - annotate_overrides
- - avoid_init_to_null
- - avoid_return_types_on_setters
- - await_only_futures
- - camel_case_types
- - constant_identifier_names
- - empty_constructor_bodies
- - implementation_imports
- - library_names
- - library_prefixes
- - non_constant_identifier_names
- - one_member_abstracts
- - only_throw_errors
- - overridden_fields
- - package_api_docs
- - package_prefixed_library_names
- - prefer_is_not_empty
- - public_member_api_docs
- - slash_for_doc_comments
- - sort_constructors_first
- - sort_unnamed_constructors_first
- - type_annotate_public_apis
- - type_init_formals
- - unawaited_futures
- - unnecessary_brace_in_string_interps
- - unnecessary_getters_setters
-
- # === pub rules ===
- - package_names
diff --git a/dev/setup.sh b/dev/setup.sh
deleted file mode 100755
index 99ec284..0000000
--- a/dev/setup.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-pub upgrade
diff --git a/dev/travis.sh b/dev/travis.sh
deleted file mode 100755
index 866b361..0000000
--- a/dev/travis.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-# Make sure dartfmt is run on everything
-echo "Checking dartfmt..."
-needs_dartfmt="$(dartfmt -n lib test dev)"
-if [[ -n "$needs_dartfmt" ]]; then
- echo "FAILED"
- echo "$needs_dartfmt"
- exit 1
-fi
-echo "PASSED"
-
-# Make sure we pass the analyzer
-echo "Checking dartanalyzer..."
-fails_analyzer="$(find lib test dev -name "*.dart" | xargs dartanalyzer --options .analysis_options)"
-if [[ "$fails_analyzer" == *"[error]"* ]]; then
- echo "FAILED"
- echo "$fails_analyzer"
- exit 1
-fi
-echo "PASSED"
-
-# Fast fail the script on failures.
-set -e
-
-# Run the tests.
-pub run test
diff --git a/pubspec.yaml b/pubspec.yaml
index 6458b06..9118507 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -12,4 +12,5 @@
platform: '^3.0.0'
dev_dependencies:
+ lints: ^1.0.1
test: ^1.16.8
diff --git a/test/src/interface/common_test.dart b/test/src/interface/common_test.dart
index ae605db..4f53269 100644
--- a/test/src/interface/common_test.dart
+++ b/test/src/interface/common_test.dart
@@ -27,8 +27,9 @@
}
tearDown(() {
- <Directory>[workingDir, dir1, dir2, dir3]
- .forEach((Directory d) => d.deleteSync(recursive: true));
+ for (var directory in <Directory>[workingDir, dir1, dir2, dir3]) {
+ directory.deleteSync(recursive: true);
+ }
});
group('on windows', () {
@@ -227,24 +228,24 @@
test('when path has spaces', () {
expect(
- sanitizeExecutablePath('Program Files\\bla.exe',
+ sanitizeExecutablePath(r'Program Files\bla.exe',
platform: platform),
- '"Program Files\\bla.exe"');
+ r'"Program Files\bla.exe"');
expect(
- sanitizeExecutablePath('ProgramFiles\\bla.exe', platform: platform),
- 'ProgramFiles\\bla.exe');
+ sanitizeExecutablePath(r'ProgramFiles\bla.exe', platform: platform),
+ r'ProgramFiles\bla.exe');
expect(
- sanitizeExecutablePath('"Program Files\\bla.exe"',
+ sanitizeExecutablePath(r'"Program Files\bla.exe"',
platform: platform),
- '"Program Files\\bla.exe"');
+ r'"Program Files\bla.exe"');
expect(
- sanitizeExecutablePath('\"Program Files\\bla.exe\"',
+ sanitizeExecutablePath(r'"Program Files\bla.exe"',
platform: platform),
- '\"Program Files\\bla.exe\"');
+ r'"Program Files\bla.exe"');
expect(
- sanitizeExecutablePath('C:\\\"Program Files\"\\bla.exe',
+ sanitizeExecutablePath(r'C:\"Program Files"\bla.exe',
platform: platform),
- 'C:\\\"Program Files\"\\bla.exe');
+ r'C:\"Program Files"\bla.exe');
});
test('with absolute path when currentDirectory getter throws', () {