Skip to content

Commit

Permalink
ci: coverage: add coverage analysis reports
Browse files Browse the repository at this point in the history
Extend codecov workflow to include coverage analysis.

Signed-off-by: Arkadiusz Cholewinski <arkadiuszx.cholewinski@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
  • Loading branch information
gbarkadiusz authored and nashif committed Mar 5, 2024
1 parent d079701 commit 0e2a25b
Show file tree
Hide file tree
Showing 2 changed files with 543 additions and 5 deletions.
39 changes: 34 additions & 5 deletions .github/workflows/codecov.yaml
Expand Up @@ -90,6 +90,7 @@ jobs:
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
mkdir -p coverage/reports
pip3 install gcovr==6.0
./scripts/twister -E ${{ matrix.platform }}-testplan.json
./scripts/twister -i --force-color -N -v --filter runnable -p ${{ matrix.platform }} --coverage -T tests --coverage-tool gcovr -xCONFIG_TEST_EXTRA_STACK_SIZE=4096 -e nano
- name: ccache stats post
Expand All @@ -107,7 +108,9 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: Coverage Data (Subset ${{ matrix.platform }})
path: coverage/reports/${{ matrix.platform }}.json
path: |
coverage/reports/${{ matrix.platform }}.json
${{ matrix.platform }}-testplan.json
codecov-results:
name: "Publish Coverage Results"
Expand All @@ -121,14 +124,17 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: coverage/reports

- name: Move coverage files
run: |
mv ./coverage/reports/*/*.json ./coverage/reports
ls -lRt ./coverage/reports
mv ./coverage/reports/*/*testplan.json .
mv ./coverage/reports/*/coverage/reports/*.json ./coverage/reports
ls -la ./coverage/reports
- name: Generate list of coverage files
Expand Down Expand Up @@ -159,19 +165,42 @@ jobs:
- name: Merge coverage files
run: |
cd ./coverage/reports
pushd ./coverage/reports
pip3 install gcovr==6.0
gcovr ${{ steps.get-coverage-files.outputs.mergefiles }} --merge-mode-functions=separate --json merged.json
gcovr ${{ steps.get-coverage-files.outputs.mergefiles }} --merge-mode-functions=separate --cobertura merged.xml
popd
- name: Get current date
id: run_date
run: |
echo "run_date=$(date --iso-8601=minutes)" >> "$GITHUB_OUTPUT"
echo "run_date_short=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
echo "run_date_year=$(date +'%Y')" >> "$GITHUB_OUTPUT"
echo "run_date_month=$(date +'%m')" >> "$GITHUB_OUTPUT"
- name: Upload Merged Coverage Results
- name: Generate Coverage Report
if: always()
run: |
pip install xlsxwriter ijson
python3 ./scripts/ci/coverage/coverage_analysis.py \
-t native_sim-testplan.json \
-m MAINTAINERS.yml \
-c coverage/reports/merged.json \
-o coverage-report-${{ steps.run_date.outputs.run_date_short }} \
-f all
cp coverage-report-* coverage/reports/
- name: Upload Merged Coverage Results and Report
if: always()
uses: actions/upload-artifact@v4
with:
name: Merged Coverage Data
name: Coverage Data and report
path: |
coverage/reports/merged.json
coverage/reports/merged.xml
coverage/reports/coverage-report-${{ steps.run_date.outputs.run_date_short }}.json
coverage/reports/coverage-report-${{ steps.run_date.outputs.run_date_short }}.xlsx
- name: Upload coverage to Codecov
if: always()
Expand Down

0 comments on commit 0e2a25b

Please sign in to comment.