From 6028be193cbc6998f8b807572ca805a859be1682 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Mon, 18 Nov 2024 23:19:28 +0900 Subject: [PATCH 1/8] Add GitHub Actions workflow for coverage reporting --- .github/workflows/coverage.yml | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/coverage.yml diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 000000000..7476a17ab --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,38 @@ +name: Coverage + +on: [push] + +jobs: + coverage: + name: Coverage + runs-on: ubuntu-24.04 + env: + MRUBY_CONFIG: ci/gcc-clang + CC: gcc + CXX: g++ + LD: gcc + CFLAGS: -O0 -g --coverage + LDFLAGS: --coverage + steps: + - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" + uses: actions/checkout@v4 + - name: Ruby version + run: ruby -v + - name: Compiler version + run: ${{ env.CC }} --version + - name: Build and test + run: rake test + - name: Install gcovr + run: pip install gcovr + - name: Generate coverage report + run: | + echo "# Coverage report" > $GITHUB_STEP_SUMMARY + echo \`\`\` >> $GITHUB_STEP_SUMMARY + gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build >> $GITHUB_STEP_SUMMARY + echo \`\`\` >> $GITHUB_STEP_SUMMARY + - name: Upload coverage report + uses: actions/upload-artifact@v4 + with: + name: coverage-${{ github.sha }} + path: coverage/ + retention-days: 14 From fbcc6cf25534a64915913a021c12171e7c8bb62f Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Mon, 18 Nov 2024 23:29:17 +0900 Subject: [PATCH 2/8] Update coverage workflow to trigger on pull requests --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7476a17ab..68dbb74d2 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -1,6 +1,6 @@ name: Coverage -on: [push] +on: [push, pull_request] jobs: coverage: From 7cf5e9b0af4318d48f36e305d963ec66550855aa Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Mon, 18 Nov 2024 23:56:55 +0900 Subject: [PATCH 3/8] Refactor coverage report generation in GitHub Actions workflow --- .github/workflows/coverage.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 68dbb74d2..b35c0d52c 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -26,10 +26,12 @@ jobs: run: pip install gcovr - name: Generate coverage report run: | - echo "# Coverage report" > $GITHUB_STEP_SUMMARY - echo \`\`\` >> $GITHUB_STEP_SUMMARY - gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build >> $GITHUB_STEP_SUMMARY - echo \`\`\` >> $GITHUB_STEP_SUMMARY + { + echo "# Coverage report" + echo \`\`\` + gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build + echo \`\`\` + } > $GITHUB_STEP_SUMMARY - name: Upload coverage report uses: actions/upload-artifact@v4 with: From f7b2ec1408de101632b283eaef3ae3d239b2214c Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Tue, 19 Nov 2024 00:00:49 +0900 Subject: [PATCH 4/8] Fix formatting of coverage report in GitHub Actions workflow --- .github/workflows/coverage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b35c0d52c..e9183d505 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -28,9 +28,9 @@ jobs: run: | { echo "# Coverage report" - echo \`\`\` + echo "\`\`\`" gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build - echo \`\`\` + echo "\`\`\`" } > $GITHUB_STEP_SUMMARY - name: Upload coverage report uses: actions/upload-artifact@v4 From 1fbcd4a39be2deb91e053ecf216a6df8b68ea717 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Tue, 19 Nov 2024 00:06:37 +0900 Subject: [PATCH 5/8] Fix lint errors --- .github/workflows/coverage.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index e9183d505..c6d6a268a 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -28,10 +28,10 @@ jobs: run: | { echo "# Coverage report" - echo "\`\`\`" + echo \`\`\` gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build - echo "\`\`\`" - } > $GITHUB_STEP_SUMMARY + echo \`\`\` + } > "$GITHUB_STEP_SUMMARY" - name: Upload coverage report uses: actions/upload-artifact@v4 with: From 593cda570f08869cd80703736bb3c21ff4299430 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Tue, 19 Nov 2024 18:11:08 +0900 Subject: [PATCH 6/8] Update retention days for coverage report in GitHub Actions workflow --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c6d6a268a..dc4cda056 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -37,4 +37,4 @@ jobs: with: name: coverage-${{ github.sha }} path: coverage/ - retention-days: 14 + retention-days: 3 From abca6549d8ef1fd1fd67fdb3aae468a5cc51ed35 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Tue, 19 Nov 2024 18:12:57 +0900 Subject: [PATCH 7/8] Update coverage workflow to use Clang for compilation --- .github/workflows/coverage.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index dc4cda056..13b88fc55 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -8,10 +8,11 @@ jobs: runs-on: ubuntu-24.04 env: MRUBY_CONFIG: ci/gcc-clang - CC: gcc - CXX: g++ - LD: gcc + CC: clang + CXX: clang++ + LD: clang CFLAGS: -O0 -g --coverage + CXXFLAGS: -O0 -g --coverage LDFLAGS: --coverage steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" @@ -29,7 +30,7 @@ jobs: { echo "# Coverage report" echo \`\`\` - gcovr -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build + gcovr --gcov-executable "llvm-cov gcov" -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build echo \`\`\` } > "$GITHUB_STEP_SUMMARY" - name: Upload coverage report From 0947dd64d0c263610350b9006e50ebacef194e85 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Tue, 19 Nov 2024 18:24:40 +0900 Subject: [PATCH 8/8] Update coverage workflow to use Clang 18 for compilation --- .github/workflows/coverage.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 13b88fc55..ebee83f73 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -8,9 +8,9 @@ jobs: runs-on: ubuntu-24.04 env: MRUBY_CONFIG: ci/gcc-clang - CC: clang - CXX: clang++ - LD: clang + CC: clang-18 + CXX: clang++-18 + LD: clang-18 CFLAGS: -O0 -g --coverage CXXFLAGS: -O0 -g --coverage LDFLAGS: --coverage @@ -30,7 +30,7 @@ jobs: { echo "# Coverage report" echo \`\`\` - gcovr --gcov-executable "llvm-cov gcov" -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build + gcovr --gcov-executable "llvm-cov-18 gcov" -e ".*_test.c" -e ".*/test/.*" -s --html-details -o coverage/ build echo \`\`\` } > "$GITHUB_STEP_SUMMARY" - name: Upload coverage report