@@ -45,11 +45,43 @@ jobs:
4545 - name : Analyze project source
4646 run : dart analyze --fatal-infos
4747
48- # Your project will need to have tests in test/ and a dependency on
49- # package:test for this step to succeed. Note that Flutter projects will
50- # want to change this to 'flutter test'.
5148 - name : Run tests
52- run : dart test
49+ run : dart test --coverage="./coverage"
50+
51+ - name : Install coverage tools
52+ if : runner.os == 'Linux'
53+ run : dart pub global activate coverage
54+
55+ - name : Install lcov
56+ if : runner.os == 'Linux'
57+ run : sudo apt-get update && sudo apt-get install -y lcov
58+
59+ - name : Format Coverage
60+ if : runner.os == 'Linux'
61+ run : dart pub global run coverage:format_coverage --packages=.dart_tool/package_config.json --report-on=lib --lcov -o ./coverage/coverage.lcov -i ./coverage
62+
63+ - name : Excluded generated files
64+ if : runner.os == 'Linux'
65+ run : lcov --remove ./coverage/coverage.lcov '*/lib/src/*.g.dart' '*/lib/src/models/drift/*' -o ./coverage/coverage.lcov
66+
67+ - name : Generate HTML coverage report
68+ if : runner.os == 'Linux'
69+ run : genhtml -o ./coverage/report ./coverage/coverage.lcov
70+
71+ - name : Upload artifact
72+ if : runner.os == 'Linux'
73+ uses : actions/upload-pages-artifact@v3
74+ with :
75+ # Upload entire repository
76+ path : ' ./coverage/report'
5377
78+ - name : Upload coverage to Codecov
79+ if : runner.os == 'Linux'
80+ uses : codecov/codecov-action@v3
81+ with :
82+ files : ./coverage/coverage.lcov
83+ flags : unittests
84+ name : codecov-umbrella
85+
5486 - name : Check Publish Warnings
5587 run : dart pub publish --dry-run
0 commit comments