Migrate to GitHub Actions (#325)

* Migrate to GitHub Actions

* Delete .travis.yml

* Replace travis badge

* Use a CI provider independent version check

* Add coverage upload steps

* Add sudo to gem install

* Use native coveralls action

* Remove coveralls token check

This is not needed, this script only generates the data, it is uploaded in a separate step afterwards.

* Add branch:master to badge link filter
4 files changed
tree: 5468c2a3faafbd6633bb257a8cf33a4281f6fa09
  1. .github/
  2. bin/
  3. lib/
  4. test/
  5. tool/
  6. .gitignore
  7. analysis_options.yaml
  8. AUTHORS
  9. CHANGELOG.md
  10. LICENSE
  11. PATENTS
  12. pubspec.yaml
  13. README.md
README.md

Coverage provides coverage data collection, manipulation, and formatting for Dart.

Build Status Coverage Status Pub

Tools

collect_coverage collects coverage JSON from the Dart VM Observatory. format_coverage formats JSON coverage data into either LCOV or pretty-printed format.

Install coverage

pub global activate coverage

Consider adding the pub global run executables directory to your path. See Running a script from your PATH for more details.

Collecting coverage from the VM

dart --pause-isolates-on-exit --disable-service-auth-codes --enable-vm-service=NNNN script.dart
pub global run coverage:collect_coverage --uri=http://... -o coverage.json --resume-isolates

or if the pub global run executables are on your PATH,

collect_coverage --uri=http://... -o coverage.json --resume-isolates

where --uri specifies the Observatory URI emitted by the VM.

If collect_coverage is invoked before the script from which coverage is to be collected, it will wait until it detects a VM observatory to which it can connect. An optional --connect-timeout may be specified (in seconds). The --wait-paused flag may be enabled, causing collect_coverage to wait until all isolates are paused before collecting coverage.

Formatting coverage data

pub global run coverage:format_coverage --packages=app_package/.packages -i coverage.json

or if the pub global run exectuables are on your PATH,

format_coverage --packages=app_package/.packages -i coverage.json

where app_package is the path to the package whose coverage is being collected. If --sdk-root is set, Dart SDK coverage will also be output.

Ignore lines from coverage

  • // coverage:ignore-line to ignore one line.
  • // coverage:ignore-start and // coverage:ignore-end to ignore range of lines inclusive.
  • // coverage:ignore-file to ignore the whole file.