File tree 2 files changed +35
-18
lines changed 2 files changed +35
-18
lines changed Original file line number Diff line number Diff line change @@ -43,23 +43,20 @@ jobs:
43
43
sleep 5
44
44
done
45
45
46
- - name : Run unit tests and generate coverage
46
+ - name : Run tests and generate coverage with Melos
47
47
run : |
48
- melos exec rm -rf coverage
49
- melos run unit_test
50
-
51
- - name : Create coverage directory
52
- run : mkdir -p coverage
53
-
54
- - name : Calculate and merge coverage
55
- if : success()
56
- run : |
57
- melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart'
58
- melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt'
48
+ dart pub global activate coverage
49
+ dart pub global activate coverde
50
+ melos run unit_test_and_coverage
51
+
52
+ - name : Debug Coverage Directory
53
+ run : ls -lh coverage && head -n 20 coverage/lcov.info || true
59
54
60
55
- name : Upload coverage to Codecov
61
56
if : success()
62
57
uses : codecov/codecov-action@v3
63
58
with :
64
59
token : ${{ secrets.CODECOV_TOKEN }}
65
- files : coverage/filtered.lcov.info
60
+ files : ./coverage/filtered.lcov.info
61
+ fail_ci_if_error : true
62
+
Original file line number Diff line number Diff line change @@ -10,9 +10,29 @@ scripts:
10
10
run : melos exec --dir-exists="test" --fail-fast -- dart test --concurrency=1
11
11
description : Run all Dart tests in this project sequentially.
12
12
unit_test_and_coverage :
13
- description : Merge all packages coverage trace files ignoring data related to generated files .
13
+ description : Merge all packages coverage trace files and filter out generated code and generated folders .
14
14
run : |
15
- melos exec rm -rf coverage
16
- melos run unit_test
17
- melos exec -c 1 --file-exists=coverage/lcov.info -- coverde filter --input ./coverage/lcov.info --output MELOS_ROOT_PATH/coverage/filtered.lcov.info --filters \.g\.dart
18
- coverde value -i coverage/filtered.lcov.info > MELOS_ROOT_PATH/coverage/result.txt
15
+ mkdir -p coverage
16
+ melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1
17
+ # Collect all raw .json files from package coverage folders
18
+ find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \;
19
+ # Convert to LCOV format
20
+ dart pub global run coverage:format_coverage \
21
+ --lcov \
22
+ --in=coverage \
23
+ --out=coverage/lcov.info
24
+ # Filter out generated files
25
+ dart pub global run coverde filter \
26
+ --input coverage/lcov.info \
27
+ --output coverage/filtered.lcov.info \
28
+ --filters '.g.dart,lib/generated/' \
29
+ --paths-parent $PWD
30
+ # Print summary report
31
+ dart pub global run coverde value \
32
+ -i coverage/filtered.lcov.info \
33
+ > coverage/result.txt
34
+
35
+
36
+
37
+
38
+
You can’t perform that action at this time.
0 commit comments