What are badges?
Now lets create a custom badge for your git project
The Plugins to update the JUnit test number seem not working very well specially if you do not have JaCOCO , here is a simple work around
1) Create a GIST file
2)Get your GIST ID
https://docs.github.com/en/rest/gists/gists?apiVersion=2022-11-28
3)Create GIT TOken with GIST permission
https://docs.github.com/en/enterprise-server@3.9/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
4)Add The token to your repo secret for action
5)Create shell script
#!/bin/bash # Assuming Maven generates XML test reports in the "target/surefire-reports" directory TEST_REPORT_DIR="target/surefire-reports" # Print current directory echo "Current directory: $(pwd)" xml_files=$(find "$(pwd)" -name "TEST-*.xml") # Concatenate all XML files and count the occurrences of "<testcase" using grep test_count=$(cat $xml_files | grep -c "<testcase") echo "Total number of tests: $test_count" echo "GIST_ID: $GIST_ID" json_data='{"schemaVersion": "1", "label": "testcount", "message": "'$test_count'", "color": "orange"}' echo "JSON data: $json_data" # Prevent any output from the script exec > /dev/null exec 2>&1 # Create or update the Gist with the test count curl -s -X PATCH \ -H "Authorization: token $GIST_TOKEN" \ -H "Content-Type: application/vnd.github+json" \ -d '{"files":{"test.json":{"content": "{\"schemaVersion\": 1,\"label\": \"testcount\", \"message\": \"'$test_count'\", \"color\":\"orange\"}" }}}' \ "https://api.github.com/gists/$GIST_ID"
7)Add script to your workflow
- name: Upload test custom env: GIST_TOKEN: ${{ secrets.GIST_TOKEN }} GIST_ID: ${{ secrets.GIST_ID }} run: bash uploadnumber.sh
8)Create the Shield badge from the raw gist file
https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/{gitusername}/{gist_id}/raw/{file_name}
Top comments (0)