forked from DI-Tony-Reed/SnykJSONDiff
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add test coverage pipeline step (DI-Tony-Reed#4)
* test WIP * Update coverage badge * add coverage echo for testing * update if statement * update if statement * Update coverage badge * update shield color * Update coverage badge * update readme.md directly rather than a separate md * update workflow to remove redundant steps * update shell var & add baseline coverage badge * update badge to something wrong for pipeline to fix as test * debug * update markdown * debug * debug * update syntax * update syntax * Update coverage badge to % * finish workflow --------- Co-authored-by: GitHub Actions <[email protected]> Co-authored-by: GitHub Action <[email protected]>
- Loading branch information
1 parent
81e5ec9
commit b8235e4
Showing
2 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go | ||
|
||
name: Update Tests Coverage | ||
|
||
on: | ||
push: | ||
branches: [ "main" ] | ||
|
||
jobs: | ||
|
||
build: | ||
name: Go test coverage | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '1.22' | ||
|
||
- name: Install dependencies | ||
run: go get . | ||
|
||
- name: Build | ||
run: go build -v ./... | ||
|
||
- name: Run tests and generate coverage badge | ||
id: badge | ||
run: | | ||
go test -coverprofile=coverage.out ./... | ||
COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//') | ||
echo "Coverage: $COVERAGE" | ||
COLOR="gray" | ||
if (( $(echo "$COVERAGE < 50" | bc -l) )); then | ||
COLOR="red" | ||
elif (( $(echo "$COVERAGE >= 50 && $COVERAGE < 80" | bc -l) )); then | ||
COLOR="yellow" | ||
elif (( $(echo "$COVERAGE >= 80 && $COVERAGE < 90" | bc -l) )); then | ||
COLOR="green" | ||
elif (( $(echo "$COVERAGE >= 90" | bc -l) )); then | ||
COLOR="brightgreen" | ||
fi | ||
BADGE_MARKDOWN="![Coverage Badge](https://img.shields.io/badge/Coverage-${COVERAGE}%25-${COLOR}.svg)" | ||
sed -i "s|!\[Coverage Badge\](.*)|$BADGE_MARKDOWN|g" README.md | ||
- name: Commit coverage badge | ||
continue-on-error: true | ||
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "GitHub Action" | ||
git add README.md | ||
if ! git diff-index --quiet HEAD --; then | ||
git commit -m "Update coverage badge to $COVERAGE%" | ||
git push | ||
else | ||
echo "No changes to commit." | ||
fi | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters