From d816ba05a13e54d3b2f97c27c0e2dc9b53192743 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 12:11:15 +0200 Subject: [PATCH 01/15] add mkdir command for coverage directory --- melos.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/melos.yaml b/melos.yaml index b4e8d218..1def9fda 100644 --- a/melos.yaml +++ b/melos.yaml @@ -13,6 +13,7 @@ scripts: description: Merge all packages coverage trace files ignoring data related to generated files. run: | melos exec rm -rf coverage + mkdir -p coverage # Ensure the coverage directory exists melos run unit_test 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 coverde value -i coverage/filtered.lcov.info > MELOS_ROOT_PATH/coverage/result.txt From 401ccf55e38d06d268e53dd446c710b4f8494c3e Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 13:48:23 +0200 Subject: [PATCH 02/15] fix generating lcov.info --- melos.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/melos.yaml b/melos.yaml index 1def9fda..bd4efeac 100644 --- a/melos.yaml +++ b/melos.yaml @@ -12,8 +12,8 @@ scripts: unit_test_and_coverage: description: Merge all packages coverage trace files ignoring data related to generated files. run: | - melos exec rm -rf coverage mkdir -p coverage # Ensure the coverage directory exists - melos run unit_test + melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 + dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib 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 coverde value -i coverage/filtered.lcov.info > MELOS_ROOT_PATH/coverage/result.txt From 130016346b86435beec671501afb9419d782fbe3 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:00:16 +0200 Subject: [PATCH 03/15] debug in coverage directory --- .github/workflows/coverage.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index bd613d6d..6d86f572 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -57,9 +57,12 @@ jobs: 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' melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt' + - name: Debug Coverage Directory + run: ls -R coverage + - name: Upload coverage to Codecov if: success() uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} - files: coverage/filtered.lcov.info + files: ./coverage/filtered.lcov.info From 77c57cd41b180f49e340529bc293d9c368495d66 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:16:35 +0200 Subject: [PATCH 04/15] update script --- .github/workflows/coverage.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 6d86f572..61509e8d 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -46,10 +46,8 @@ jobs: - name: Run unit tests and generate coverage run: | melos exec rm -rf coverage - melos run unit_test - - - name: Create coverage directory - run: mkdir -p coverage + mkdir -p coverage + melos exec --dir-exists="test" -- dart test --coverage=coverage - name: Calculate and merge coverage if: success() @@ -59,7 +57,7 @@ jobs: - name: Debug Coverage Directory run: ls -R coverage - + - name: Upload coverage to Codecov if: success() uses: codecov/codecov-action@v3 From 6df1ae84c8d4e21d542f023da274a52697237930 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:22:21 +0200 Subject: [PATCH 05/15] add concurrency=1 to fix tests --- .github/workflows/coverage.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 61509e8d..476920fd 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -47,7 +47,7 @@ jobs: run: | melos exec rm -rf coverage mkdir -p coverage - melos exec --dir-exists="test" -- dart test --coverage=coverage + melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - name: Calculate and merge coverage if: success() From 6beb104c5a71be3794951ef7155f2c1eb933e50a Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:34:12 +0200 Subject: [PATCH 06/15] update merging coverages of packages --- .github/workflows/coverage.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 476920fd..2ef0792f 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -52,8 +52,9 @@ jobs: - name: Calculate and merge coverage if: success() run: | - 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' - melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt' + dart pub global run coverage:format_coverage --lcov --in=packages --out=coverage/lcov.info --report-on=lib + dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart + dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt - name: Debug Coverage Directory run: ls -R coverage From da0f2daa4d42e393dc04ba9b95de48c096aa2d3a Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:47:33 +0200 Subject: [PATCH 07/15] use melos script --- .github/workflows/coverage.yaml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 2ef0792f..5819a756 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -43,19 +43,12 @@ jobs: sleep 5 done - - name: Run unit tests and generate coverage + - name: Run tests and generate coverage with Melos run: | - melos exec rm -rf coverage - mkdir -p coverage - melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - - - name: Calculate and merge coverage - if: success() - run: | - dart pub global run coverage:format_coverage --lcov --in=packages --out=coverage/lcov.info --report-on=lib - dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart - dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt - + dart pub global activate coverage + dart pub global activate coverde + melos run unit_test_and_coverage + - name: Debug Coverage Directory run: ls -R coverage @@ -65,3 +58,5 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage/filtered.lcov.info + fail_ci_if_error: true + From ed36f3d4f383fa71696e64887206b036337dbca0 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 14:56:43 +0200 Subject: [PATCH 08/15] update melos file --- melos.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/melos.yaml b/melos.yaml index bd4efeac..f53bac62 100644 --- a/melos.yaml +++ b/melos.yaml @@ -12,8 +12,9 @@ scripts: unit_test_and_coverage: description: Merge all packages coverage trace files ignoring data related to generated files. run: | - mkdir -p coverage # Ensure the coverage directory exists + mkdir -p coverage melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib - 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 - coverde value -i coverage/filtered.lcov.info > MELOS_ROOT_PATH/coverage/result.txt + dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart + dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt + From 5bfba9eeb13e3470b1a9bcb5a84316f4992405a3 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 15:20:33 +0200 Subject: [PATCH 09/15] fix uploaded percentage in codecov --- melos.yaml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/melos.yaml b/melos.yaml index f53bac62..758534e8 100644 --- a/melos.yaml +++ b/melos.yaml @@ -14,7 +14,18 @@ scripts: run: | mkdir -p coverage melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib - dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart - dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt + find . -name "*.json" -path "*/coverage/*.json" > coverage/input_files.txt + dart pub global run coverage:format_coverage \ + --lcov \ + --out=coverage/lcov.info \ + --report-on=lib \ + --input=coverage/input_files.txt + dart pub global run coverde filter \ + --input coverage/lcov.info \ + --output coverage/filtered.lcov.info \ + --filters .g.dart + dart pub global run coverde value \ + -i coverage/filtered.lcov.info \ + > coverage/result.txt + From 4bcfbbd7c33d49ac278f7465a0ab695b4d9f07e5 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 15:31:59 +0200 Subject: [PATCH 10/15] fix unit_test_and_coverage command --- melos.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/melos.yaml b/melos.yaml index 758534e8..f082323c 100644 --- a/melos.yaml +++ b/melos.yaml @@ -14,12 +14,12 @@ scripts: run: | mkdir -p coverage melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - find . -name "*.json" -path "*/coverage/*.json" > coverage/input_files.txt + find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; dart pub global run coverage:format_coverage \ --lcov \ + --in=coverage \ --out=coverage/lcov.info \ - --report-on=lib \ - --input=coverage/input_files.txt + --report-on=lib dart pub global run coverde filter \ --input coverage/lcov.info \ --output coverage/filtered.lcov.info \ @@ -29,3 +29,4 @@ scripts: > coverage/result.txt + From 3f1f1ad20e302508183a97cba31ab72746e448ed Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 15:49:07 +0200 Subject: [PATCH 11/15] update scripts --- .github/workflows/coverage.yaml | 2 +- melos.yaml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 5819a756..3dc34027 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -50,7 +50,7 @@ jobs: melos run unit_test_and_coverage - name: Debug Coverage Directory - run: ls -R coverage + run: ls -lh coverage && head -n 20 coverage/lcov.info || true - name: Upload coverage to Codecov if: success() diff --git a/melos.yaml b/melos.yaml index f082323c..f19c29fd 100644 --- a/melos.yaml +++ b/melos.yaml @@ -10,23 +10,28 @@ scripts: run: melos exec --dir-exists="test" --fail-fast -- dart test --concurrency=1 description: Run all Dart tests in this project sequentially. unit_test_and_coverage: - description: Merge all packages coverage trace files ignoring data related to generated files. + description: Merge all packages coverage trace files and filter out generated code. run: | mkdir -p coverage melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 + # Collect all raw .json files from package coverage folders find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; + # Convert to LCOV format dart pub global run coverage:format_coverage \ --lcov \ --in=coverage \ --out=coverage/lcov.info \ --report-on=lib + # Filter out generated files dart pub global run coverde filter \ --input coverage/lcov.info \ --output coverage/filtered.lcov.info \ --filters .g.dart + # Print summary report dart pub global run coverde value \ -i coverage/filtered.lcov.info \ > coverage/result.txt + From 087d81c1c55d289e6a4f18c8fd09d4c299665cef Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Wed, 16 Apr 2025 16:02:28 +0200 Subject: [PATCH 12/15] update melos comand --- melos.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/melos.yaml b/melos.yaml index f19c29fd..cc722c4d 100644 --- a/melos.yaml +++ b/melos.yaml @@ -20,13 +20,13 @@ scripts: dart pub global run coverage:format_coverage \ --lcov \ --in=coverage \ - --out=coverage/lcov.info \ - --report-on=lib + --out=coverage/lcov.info # Filter out generated files dart pub global run coverde filter \ --input coverage/lcov.info \ --output coverage/filtered.lcov.info \ --filters .g.dart + --paths-parent $PWD # Print summary report dart pub global run coverde value \ -i coverage/filtered.lcov.info \ From eaf174a3a95331094b17bdb664502bb88bd223b6 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Thu, 17 Apr 2025 12:05:50 +0200 Subject: [PATCH 13/15] extract generated files from coverage --- melos.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/melos.yaml b/melos.yaml index cc722c4d..ad03d87f 100644 --- a/melos.yaml +++ b/melos.yaml @@ -20,7 +20,8 @@ scripts: dart pub global run coverage:format_coverage \ --lcov \ --in=coverage \ - --out=coverage/lcov.info + --out=coverage/lcov.info \ + --report-on=packages/tfchain_client/lib/generated # Filter out generated files dart pub global run coverde filter \ --input coverage/lcov.info \ From 80e9fec20d499f3d6ebee1d4a05b97b3cfbfdd30 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Thu, 17 Apr 2025 12:21:19 +0200 Subject: [PATCH 14/15] extract generated directories from melos.yaml coverage --- melos.yaml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/melos.yaml b/melos.yaml index ad03d87f..65f32380 100644 --- a/melos.yaml +++ b/melos.yaml @@ -10,28 +10,28 @@ scripts: run: melos exec --dir-exists="test" --fail-fast -- dart test --concurrency=1 description: Run all Dart tests in this project sequentially. unit_test_and_coverage: - description: Merge all packages coverage trace files and filter out generated code. - run: | - mkdir -p coverage - melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - # Collect all raw .json files from package coverage folders - find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; - # Convert to LCOV format - dart pub global run coverage:format_coverage \ - --lcov \ - --in=coverage \ - --out=coverage/lcov.info \ - --report-on=packages/tfchain_client/lib/generated + description: Merge all packages coverage trace files and filter out generated code and generated folders. + run: | + mkdir -p coverage + melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 + # Collect all raw .json files from package coverage folders + find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; + # Convert to LCOV format + dart pub global run coverage:format_coverage \ + --lcov \ + --in=coverage \ + --out=coverage/lcov.info # Filter out generated files - dart pub global run coverde filter \ - --input coverage/lcov.info \ - --output coverage/filtered.lcov.info \ - --filters .g.dart - --paths-parent $PWD - # Print summary report - dart pub global run coverde value \ - -i coverage/filtered.lcov.info \ - > coverage/result.txt + dart pub global run coverde filter \ + --input coverage/lcov.info \ + --output coverage/filtered.lcov.info \ + --filters '.g.dart,lib/generated/' \ + --paths-parent $PWD + # Print summary report + dart pub global run coverde value \ + -i coverage/filtered.lcov.info \ + > coverage/result.txt + From bbf02bb5b2e46953ce3cd2be6a4a5d7eb0e72649 Mon Sep 17 00:00:00 2001 From: AlaaElattar Date: Thu, 17 Apr 2025 12:24:36 +0200 Subject: [PATCH 15/15] fix indentation --- melos.yaml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/melos.yaml b/melos.yaml index 65f32380..186c0328 100644 --- a/melos.yaml +++ b/melos.yaml @@ -10,27 +10,27 @@ scripts: run: melos exec --dir-exists="test" --fail-fast -- dart test --concurrency=1 description: Run all Dart tests in this project sequentially. unit_test_and_coverage: - description: Merge all packages coverage trace files and filter out generated code and generated folders. - run: | - mkdir -p coverage - melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 - # Collect all raw .json files from package coverage folders - find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; - # Convert to LCOV format - dart pub global run coverage:format_coverage \ - --lcov \ - --in=coverage \ - --out=coverage/lcov.info + description: Merge all packages coverage trace files and filter out generated code and generated folders. + run: | + mkdir -p coverage + melos exec --dir-exists="test" -- dart test --coverage=coverage --concurrency=1 + # Collect all raw .json files from package coverage folders + find . -name "*.json" -path "*/coverage/*.json" -exec cp {} coverage/ \; + # Convert to LCOV format + dart pub global run coverage:format_coverage \ + --lcov \ + --in=coverage \ + --out=coverage/lcov.info # Filter out generated files - dart pub global run coverde filter \ - --input coverage/lcov.info \ - --output coverage/filtered.lcov.info \ - --filters '.g.dart,lib/generated/' \ - --paths-parent $PWD - # Print summary report - dart pub global run coverde value \ - -i coverage/filtered.lcov.info \ - > coverage/result.txt + dart pub global run coverde filter \ + --input coverage/lcov.info \ + --output coverage/filtered.lcov.info \ + --filters '.g.dart,lib/generated/' \ + --paths-parent $PWD + # Print summary report + dart pub global run coverde value \ + -i coverage/filtered.lcov.info \ + > coverage/result.txt