@@ -554,14 +554,13 @@ update_web_pages()
554
554
fi
555
555
echo " Done"
556
556
557
+ echo -ne " Creating Zserio runtime library GitHub badges..."
558
+ create_github_badge_jsons " ${ZSERIO_PROJECT_ROOT} " " ${ZSERIO_VERSION} "
559
+ echo " Done"
560
+
557
561
# This is necessary because Jekyll ignores Python runtime doc directories that start with underscores.
558
562
echo -ne " Creating Jekyll configuration file..."
559
- echo " theme: jekyll-theme-slate" > " ${ZSERIO_PROJECT_ROOT} " /_config.yml
560
- echo " exclude: 3rdparty" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
561
- echo " include:" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
562
- echo " - _images" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
563
- echo " - _modules" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
564
- echo " - _static" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
563
+ create_jekyll_config_file " ${ZSERIO_PROJECT_ROOT} "
565
564
echo " Done"
566
565
567
566
echo
@@ -590,6 +589,78 @@ update_web_pages()
590
589
return 0
591
590
}
592
591
592
+ # Create JSON configuration files for all GitHub badges
593
+ create_github_badge_jsons ()
594
+ {
595
+ exit_if_argc_ne $# 2
596
+ local ZSERIO_PROJECT_ROOT=" $1 " ; shift
597
+ local ZSERIO_VERSION=" $1 " ; shift
598
+
599
+ local CLANG_COVERAGE_DIR=" ${ZSERIO_PROJECT_ROOT} " /doc/runtime/cpp/coverage/clang
600
+ local CLANG_LINES_COVERAGE=` cat " ${CLANG_COVERAGE_DIR} " /coverage_report.txt | grep TOTAL | \
601
+ tr -s ' ' | cut -d' ' -f 10`
602
+ create_github_badge_json " ${CLANG_COVERAGE_DIR} " /coverage_github_badge.json \
603
+ " C++ clang runtime ${ZSERIO_VERSION} coverage" " ${CLANG_LINES_COVERAGE} "
604
+
605
+ local GCC_COVERAGE_DIR=" ${ZSERIO_PROJECT_ROOT} " /doc/runtime/cpp/coverage/gcc
606
+ local GCC_LINES_COVERAGE=` cat " ${GCC_COVERAGE_DIR} " /coverage_report.txt | grep lines: | \
607
+ tr -s ' ' | cut -d' ' -f 2`
608
+ create_github_badge_json " ${GCC_COVERAGE_DIR} " /coverage_github_badge.json \
609
+ " C++ gcc runtime ${ZSERIO_VERSION} coverage" " ${GCC_LINES_COVERAGE} "
610
+
611
+ local JAVA_COVERAGE_DIR=" ${ZSERIO_PROJECT_ROOT} " /doc/runtime/java/coverage
612
+ local JAVA_COVERAGE_REPORT=` cat " ${JAVA_COVERAGE_DIR} " /jacoco_report.xml`
613
+ local JAVA_LINES_MISSED=` echo ${JAVA_COVERAGE_REPORT##* INSTRUCTION} | cut -d' "' -f3`
614
+ local JAVA_LINES_COVERED=` echo ${JAVA_COVERAGE_REPORT##* INSTRUCTION} | cut -d' "' -f5`
615
+ local JAVA_LINES_VALID=$(( ${JAVA_LINES_COVERED} - ${JAVA_LINES_MISSED} ))
616
+ local JAVA_LINES_COVERAGE=$(( 10000 * ${JAVA_LINES_VALID} / ${JAVA_LINES_COVERED} ))
617
+ create_github_badge_json " ${JAVA_COVERAGE_DIR} " /coverage_github_badge.json \
618
+ " Java runtime ${ZSERIO_VERSION} coverage" \
619
+ " ${JAVA_LINES_COVERAGE: 0:- 2} .${JAVA_LINES_COVERAGE: -2} %"
620
+
621
+ local PYTHON_COVERAGE_DIR=" ${ZSERIO_PROJECT_ROOT} " /doc/runtime/python/coverage
622
+ local PYTHON_LINES_VALID=` cat " ${PYTHON_COVERAGE_DIR} " /coverage_report.xml | grep lines-covered | \
623
+ cut -d' ' -f 4 | cut -d= -f2 | tr -d \" `
624
+ local PYTHON_LINES_COVERED=` cat " ${PYTHON_COVERAGE_DIR} " /coverage_report.xml | grep lines-covered | \
625
+ cut -d' ' -f 5 | cut -d= -f2 | tr -d \" `
626
+ local PYTHON_LINES_COVERAGE=$(( 10000 * ${PYTHON_LINES_VALID} / ${PYTHON_LINES_COVERED} ))
627
+ create_github_badge_json " ${PYTHON_COVERAGE_DIR} " /coverage_github_badge.json \
628
+ " Python runtime ${ZSERIO_VERSION} coverage" \
629
+ " ${PYTHON_LINES_COVERAGE: 0:- 2} .${PYTHON_LINES_COVERAGE: -2} %"
630
+ }
631
+
632
+ # Create JSON configuration file for GitHub badge
633
+ create_github_badge_json ()
634
+ {
635
+ exit_if_argc_ne $# 3
636
+ local BADGE_JSON_FILE=" $1 " ; shift
637
+ local BADGE_LABEL=" $1 " ; shift
638
+ local BADGE_MESSAGE=" $1 " ; shift
639
+
640
+ cat > " ${BADGE_JSON_FILE} " << EOF
641
+ {
642
+ "schemaVersion": 1,
643
+ "label": "${BADGE_LABEL} ",
644
+ "message": "${BADGE_MESSAGE} ",
645
+ "color": "green"
646
+ }
647
+ EOF
648
+ }
649
+
650
+ # Create Jekyll configuration file
651
+ create_jekyll_config_file ()
652
+ {
653
+ exit_if_argc_ne $# 1
654
+ local ZSERIO_PROJECT_ROOT=" $1 " ; shift
655
+
656
+ echo " theme: jekyll-theme-slate" > " ${ZSERIO_PROJECT_ROOT} " /_config.yml
657
+ echo " exclude: 3rdparty" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
658
+ echo " include:" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
659
+ echo " - _images" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
660
+ echo " - _modules" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
661
+ echo " - _static" >> " ${ZSERIO_PROJECT_ROOT} " /_config.yml
662
+ }
663
+
593
664
# Print help message.
594
665
print_help ()
595
666
{
0 commit comments