Files
mattermost-mobile/scripts/read-coverage.sh
Rahim Rahman abb526cf83 ci(MM-63199): code coverage tracking (#8642)
* ci(MM-63199): code coverage tracking

* try to download existing coverage file

* read coverage

* add token

* use github.token instead

* passing github token

* github_token passing from workflow

* remove download

* re-add download

* wrong param

* try download all artifacts

* add run-id so to retrieve with download later

* remove read coverage temp

* use run-id to download

* put files into current-coverage

* using last run id

* temporary comment

* can retrieve last run id?

* remove hard-coding

* echo into github_env vs export

* comparing new and old

* comparison improvement

* post to github

* fix coverage text

* refactor to main from current-coverage

* formatting changes

* fix missing content

* small tweaking

* showing the Warning to make sure

* formatting

* remove +

* checking to see if the error shows via echo

* revert the change to error

* separate to a new file

* comment the actual test for now

* prep node deps

* only run certain things on main

* trying cache-hit

* real trying cache-hit

* testing to make sure cache-run-id runs

* save-always true

* save-always deprecated

* let's try different strategy

* add key

* restore-key adding a -

* only perform on `main`

* only run on main or if its a PR

* coverage_threshold

* remove comments

* add total

* removing unneeded comments

* calculate total

* run test in `release-*` only

* making sure that only PR will run

* only do more steps if upload-coverage successful

* trying thollander/actions-comment-pull-request

* using diff way to comment.

* comment on how things work

* testing to trigger warning and see if comment is updated vs new comment

* omit echo messages

* see if giving github token would work.

* wrong use of param

* try without github token

* adding a very simple change to see where it lands

* using cache hit instead.

* creating the cache again.  how did i lose it?

* revert back

* cache-hit might be off

* debug

* debug with failing cache restoration

* check for run-id.txt instead

* all into action

* missing "

* remove unneeded actions
* change threshold to 0.5

* relative time

* skeptical about date formatting

* revert back to the threshold trigger

* below 80% total coverage threshold

* only show one error/warning at  time.

* testing if the coverage drop below 80

* debug output

* add Reset Test Coverage label use

* try using contains vs direct comparsion

* remove the label checker

* temp change

* ooops

* revert back

* let's post before exiting

* consistency

* total coverage threshold reset to 80%
2025-03-14 13:21:25 -06:00

38 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -e # Exit on any error
# Check if an argument is provided
if [ -z "$1" ]; then
echo "❌ Error: No coverage file provided."
echo "Usage: $0 <coverage-summary.json>"
exit 1
fi
COVERAGE_FILE="$1"
# Check if the coverage file exists
if [ ! -f "$COVERAGE_FILE" ]; then
echo "❌ Error: Coverage summary file not found: $COVERAGE_FILE"
exit 1
fi
# Extract coverage values from JSON
BRANCHES=$(jq '.total.branches.pct' $COVERAGE_FILE)
FUNCTIONS=$(jq '.total.functions.pct' $COVERAGE_FILE)
LINES=$(jq '.total.lines.pct' $COVERAGE_FILE)
STATEMENTS=$(jq '.total.statements.pct' $COVERAGE_FILE)
# Print extracted values
echo "📊 Extracted Coverage Values:"
echo " - Branches: $BRANCHES%"
echo " - Functions: $FUNCTIONS%"
echo " - Lines: $LINES%"
echo " - Statements: $STATEMENTS%"
# Export values for GitHub Actions (if needed)
echo "BRANCHES=$BRANCHES" >> $GITHUB_ENV
echo "FUNCTIONS=$FUNCTIONS" >> $GITHUB_ENV
echo "LINES=$LINES" >> $GITHUB_ENV
echo "STATEMENTS=$STATEMENTS" >> $GITHUB_ENV