Skip to content

Commit 2868ef1

Browse files
committed
cleanup
Signed-off-by: Mahantesh-R <[email protected]>
1 parent 1694cd6 commit 2868ef1

File tree

1 file changed

+55
-55
lines changed

1 file changed

+55
-55
lines changed

scripts/publishCoverage.sh

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,20 @@
1717
set -x
1818
echo "Publishing the coverage results"
1919

20-
# GitHub Actions vars:
21-
# $GITHUB_WORKSPACE -> root of repo
20+
# GitHub Actions env vars:
21+
# $GITHUB_WORKSPACE -> repo root on runner
2222
# $GITHUB_REPOSITORY -> owner/repo
23-
# $GITHUB_REF_NAME -> branch or tag name
24-
# $GITHUB_SHA -> current commit SHA
25-
# $GITHUB_RUN_NUMBER -> CI run number
23+
# $GITHUB_REF_NAME -> branch or tag name (e.g. master)
24+
# $GITHUB_SHA -> commit SHA
25+
# $GITHUB_RUN_NUMBER -> workflow run number
2626
# $GITHUB_EVENT_NAME -> event type (push, pull_request, etc)
27-
# $GITHUB_EVENT_PATH -> path to the full webhook event JSON
27+
# $GITHUB_EVENT_PATH -> webhook event JSON
2828

29-
mkdir -p "$GITHUB_WORKSPACE/gh-pages"
30-
cd "$GITHUB_WORKSPACE/gh-pages" || exit 1
29+
WORKDIR="$GITHUB_WORKSPACE/gh-pages"
30+
COVERAGE_DIR="$WORKDIR/coverage/$GITHUB_REF_NAME"
31+
32+
mkdir -p "$WORKDIR"
33+
cd "$WORKDIR" || exit 1
3134

3235
OLD_COVERAGE=0
3336
NEW_COVERAGE=0
@@ -37,68 +40,65 @@ BADGE_COLOR=red
3740
GREEN_THRESHOLD=85
3841
YELLOW_THRESHOLD=50
3942

40-
# clone and prepare gh-pages branch
41-
git clone -b gh-pages https://"$GHE_USER":"$GHE_TOKEN"@github.com/"$GITHUB_REPOSITORY".git .
42-
git config user.name "travis"
43-
git config user.email "travis"
44-
45-
mkdir -p "$GITHUB_WORKSPACE/gh-pages/coverage/$GITHUB_REF_NAME"
46-
mkdir -p "$GITHUB_WORKSPACE/gh-pages/coverage/$GITHUB_SHA"
43+
# clone gh-pages branch
44+
git clone -b gh-pages "https://$GHE_USER:$GHE_TOKEN@github.com/$GITHUB_REPOSITORY.git" .
45+
git config user.name "github-actions"
46+
git config user.email "[email protected]"
4747

48-
# calculate overall coverage percentage
49-
echo "Computing the coverages"
48+
mkdir -p "$COVERAGE_DIR" "$WORKDIR/coverage/$GITHUB_SHA"
5049

51-
if [ -f "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/cover.html" ]; then
52-
OLD_COVERAGE=$(grep "%)" "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/cover.html" \
53-
| sed 's/[][()><%]/ /g' | awk '{ print $4 }' \
54-
| awk '{s+=$1}END{if(NR>0)print s/NR; else print 0}')
55-
fi
50+
# compute old coverage if present
51+
COVER_HTML="$COVERAGE_DIR/cover.html"
52+
OLD_COVERAGE=$(grep "%)" "$COVER_HTML" 2>/dev/null \
53+
| sed 's/[][()><%]/ /g' \
54+
| awk '{s+=$4}END{if(NR>0)print s/NR; else print 0}')
5655

57-
cp "$GITHUB_WORKSPACE/cover.html" "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}"
58-
cp "$GITHUB_WORKSPACE/cover.html" "$GITHUB_WORKSPACE/gh-pages/coverage/$GITHUB_SHA"
56+
# copy new report
57+
cp "$GITHUB_WORKSPACE/cover.html" "$COVERAGE_DIR"
58+
cp "$GITHUB_WORKSPACE/cover.html" "$WORKDIR/coverage/$GITHUB_SHA"
5959

60-
if [ -f "$GITHUB_WORKSPACE/Passing" ]; then
61-
curl -s https://img.shields.io/badge/e2e-passing-yellow.svg > "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/e2e.svg"
62-
elif [ -f "$GITHUB_WORKSPACE/Failed" ]; then
63-
curl -s https://img.shields.io/badge/e2e-failed-red.svg > "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/e2e.svg"
60+
# add e2e badge if test markers exist
61+
if [[ -f "$GITHUB_WORKSPACE/Passing" ]]; then
62+
curl -s https://img.shields.io/badge/e2e-passing-green.svg > "$COVERAGE_DIR/e2e.svg"
63+
elif [[ -f "$GITHUB_WORKSPACE/Failed" ]]; then
64+
curl -s https://img.shields.io/badge/e2e-failed-red.svg > "$COVERAGE_DIR/e2e.svg"
6465
fi
6566

66-
NEW_COVERAGE=$(grep "%)" "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/cover.html" | sed 's/[][()><%]/ /g' | awk '{ print $4 }' \
67-
| awk '{s+=$1}END{if(NR>0)print s/NR; else print 0}')
67+
# compute new coverage
68+
NEW_COVERAGE=$(grep "%)" "$COVER_HTML" \
69+
| sed 's/[][()><%]/ /g' \
70+
| awk '{s+=$4}END{if(NR>0)print s/NR; else print 0}')
6871

69-
# pick badge color
72+
# select badge color
7073
if (( $(echo "$NEW_COVERAGE > $GREEN_THRESHOLD" | bc -l) )); then
71-
BADGE_COLOR="green"
74+
BADGE_COLOR="green"
7275
elif (( $(echo "$NEW_COVERAGE > $YELLOW_THRESHOLD" | bc -l) )); then
73-
BADGE_COLOR="yellow"
76+
BADGE_COLOR="yellow"
7477
fi
7578

76-
# generate badge
77-
curl -s https://img.shields.io/badge/coverage-"$NEW_COVERAGE"-$BADGE_COLOR.svg > "$GITHUB_WORKSPACE/gh-pages/coverage/${GITHUB_REF_NAME}/badge.svg"
79+
# generate coverage badge
80+
curl -s "https://img.shields.io/badge/coverage-${NEW_COVERAGE}-${BADGE_COLOR}.svg" > "$COVERAGE_DIR/badge.svg"
7881

79-
# generate result message
82+
# build result message
8083
if (( $(echo "$OLD_COVERAGE > $NEW_COVERAGE" | bc -l) )); then
81-
RESULT_MESSAGE=":red_circle: Coverage decreased from [$OLD_COVERAGE%] to [$NEW_COVERAGE%]"
84+
RESULT_MESSAGE=":red_circle: Coverage decreased from [$OLD_COVERAGE%] to [$NEW_COVERAGE%]"
8285
elif (( $(echo "$OLD_COVERAGE == $NEW_COVERAGE" | bc -l) )); then
83-
RESULT_MESSAGE=":thumbsup: Coverage remained same at [$NEW_COVERAGE%]"
86+
RESULT_MESSAGE=":thumbsup: Coverage remained the same at [$NEW_COVERAGE%]"
8487
else
85-
RESULT_MESSAGE=":thumbsup: Coverage increased from [$OLD_COVERAGE%] to [$NEW_COVERAGE%]"
88+
RESULT_MESSAGE=":thumbsup: Coverage increased from [$OLD_COVERAGE%] to [$NEW_COVERAGE%]"
8689
fi
8790

88-
# update gh-pages or PR
89-
echo "Updating gh-pages"
90-
if [ "$GITHUB_EVENT_NAME" == "push" ]; then
91-
git status
92-
git add .
93-
git commit -m "Coverage result for commit $GITHUB_SHA from run $GITHUB_RUN_NUMBER" || echo "No changes to commit"
94-
git push origin gh-pages
95-
elif [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
96-
# extract PR number from JSON
97-
PR_NUMBER=$(jq -r .pull_request.number "$GITHUB_EVENT_PATH")
98-
99-
curl -s -X POST \
100-
-H "Authorization: token $GHE_TOKEN" \
101-
-H "Content-Type: application/json" \
102-
-d "{\"body\": \"$RESULT_MESSAGE\"}" \
103-
"https://api.github.com/repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER/comments"
91+
# updating comment on PR
92+
echo "Updating gh-pages/PR comment"
93+
if [[ "$GITHUB_EVENT_NAME" == "push" ]]; then
94+
git add .
95+
git commit -m "Coverage: commit $GITHUB_SHA (run $GITHUB_RUN_NUMBER)" || echo "No changes to commit"
96+
git push origin gh-pages
97+
elif [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
98+
PR_NUMBER=$(jq -r .pull_request.number "$GITHUB_EVENT_PATH")
99+
curl -s -X POST \
100+
-H "Authorization: token $GHE_TOKEN" \
101+
-H "Content-Type: application/json" \
102+
-d "{\"body\": \"$RESULT_MESSAGE\"}" \
103+
"https://api.github.com/repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER/comments"
104104
fi

0 commit comments

Comments
 (0)