Add detailed Davidson CI dashboard report
pauljd/davidson-ci: Davidson CI / quality (push) Successful in 11s
pauljd/davidson-ci: Davidson CI / quality (push) Successful in 11s
This commit is contained in:
+75
-35
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
set -u
|
||||
|
||||
SUMMARY_FILE="${GITEA_STEP_SUMMARY:-${GITHUB_STEP_SUMMARY:-}}"
|
||||
|
||||
@@ -13,54 +13,94 @@ JS_COUNT="${DAVIDSON_JS_COUNT:-0}"
|
||||
TS_COUNT="${DAVIDSON_TS_COUNT:-0}"
|
||||
CSS_COUNT="${DAVIDSON_CSS_COUNT:-0}"
|
||||
|
||||
PHP_STATUS="${DAVIDSON_PHP_STATUS:-UNKNOWN}"
|
||||
JS_STATUS="${DAVIDSON_JS_STATUS:-UNKNOWN}"
|
||||
CSS_STATUS="${DAVIDSON_CSS_STATUS:-UNKNOWN}"
|
||||
|
||||
COMPOSER_AUDIT="${DAVIDSON_COMPOSER_AUDIT:-UNKNOWN}"
|
||||
NPM_AUDIT="${DAVIDSON_NPM_AUDIT:-UNKNOWN}"
|
||||
SEMGREP="${DAVIDSON_SEMGREP:-UNKNOWN}"
|
||||
TRIVY_VULN="${DAVIDSON_TRIVY_VULN:-UNKNOWN}"
|
||||
TRIVY_SECRET="${DAVIDSON_TRIVY_SECRET:-UNKNOWN}"
|
||||
SECURITY_STATUS="${DAVIDSON_SECURITY_STATUS:-UNKNOWN}"
|
||||
|
||||
status_icon() {
|
||||
case "$1" in
|
||||
PASS)
|
||||
echo "✅ PASS"
|
||||
;;
|
||||
FAIL)
|
||||
echo "❌ FAIL"
|
||||
;;
|
||||
SKIP)
|
||||
echo "➖ SKIP"
|
||||
;;
|
||||
*)
|
||||
echo "⚪ UNKNOWN"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
OVERALL="PASS"
|
||||
|
||||
for status in \
|
||||
"$PHP_STATUS" \
|
||||
"$JS_STATUS" \
|
||||
"$CSS_STATUS" \
|
||||
"$SECURITY_STATUS"
|
||||
do
|
||||
if [ "$status" = "FAIL" ]; then
|
||||
OVERALL="FAIL"
|
||||
fi
|
||||
done
|
||||
|
||||
{
|
||||
echo "# Davidson CI Report"
|
||||
echo "# 🛡️ Davidson CI Report"
|
||||
echo
|
||||
|
||||
echo "## Project Detection"
|
||||
echo
|
||||
|
||||
if [ "$PHP_COUNT" -gt 0 ]; then
|
||||
echo "- ✅ PHP: $PHP_COUNT files"
|
||||
else
|
||||
echo "- ➖ PHP: not detected"
|
||||
fi
|
||||
|
||||
if [ "$JS_COUNT" -gt 0 ]; then
|
||||
echo "- ✅ JavaScript: $JS_COUNT files"
|
||||
else
|
||||
echo "- ➖ JavaScript: not detected"
|
||||
fi
|
||||
|
||||
if [ "$TS_COUNT" -gt 0 ]; then
|
||||
echo "- ✅ TypeScript: $TS_COUNT files"
|
||||
else
|
||||
echo "- ➖ TypeScript: not detected"
|
||||
fi
|
||||
|
||||
if [ "$CSS_COUNT" -gt 0 ]; then
|
||||
echo "- ✅ CSS: $CSS_COUNT files"
|
||||
else
|
||||
echo "- ➖ CSS: not detected"
|
||||
fi
|
||||
echo "| Language | Files |"
|
||||
echo "|---|---:|"
|
||||
echo "| PHP | $PHP_COUNT |"
|
||||
echo "| JavaScript | $JS_COUNT |"
|
||||
echo "| TypeScript | $TS_COUNT |"
|
||||
echo "| CSS | $CSS_COUNT |"
|
||||
|
||||
echo
|
||||
echo "## Quality"
|
||||
echo
|
||||
echo "- ✅ Language checks completed"
|
||||
echo "- ✅ Tests/lint/build completed where configured"
|
||||
echo "| Module | Status |"
|
||||
echo "|---|---|"
|
||||
echo "| PHP | $(status_icon "$PHP_STATUS") |"
|
||||
echo "| JavaScript / TypeScript | $(status_icon "$JS_STATUS") |"
|
||||
echo "| CSS | $(status_icon "$CSS_STATUS") |"
|
||||
|
||||
echo
|
||||
echo "## Security"
|
||||
echo
|
||||
echo "- ✅ Composer audit"
|
||||
echo "- ✅ npm audit"
|
||||
echo "- ✅ Semgrep"
|
||||
echo "- ✅ Trivy vulnerability scan"
|
||||
echo "- ✅ Trivy secret scan"
|
||||
echo "| Check | Status |"
|
||||
echo "|---|---|"
|
||||
echo "| Composer audit | $(status_icon "$COMPOSER_AUDIT") |"
|
||||
echo "| npm audit | $(status_icon "$NPM_AUDIT") |"
|
||||
echo "| Semgrep | $(status_icon "$SEMGREP") |"
|
||||
echo "| Trivy vulnerabilities | $(status_icon "$TRIVY_VULN") |"
|
||||
echo "| Trivy secrets | $(status_icon "$TRIVY_SECRET") |"
|
||||
|
||||
echo
|
||||
echo "## Result"
|
||||
echo "---"
|
||||
echo
|
||||
echo "✅ **Davidson CI completed successfully**"
|
||||
|
||||
if [ "$OVERALL" = "PASS" ]; then
|
||||
echo "## ✅ Davidson CI Passed"
|
||||
echo
|
||||
echo "No blocking issues were detected."
|
||||
else
|
||||
echo "## ❌ Davidson CI Failed"
|
||||
echo
|
||||
echo "One or more checks require attention. Open the failed job steps for details."
|
||||
fi
|
||||
|
||||
} >> "$SUMMARY_FILE"
|
||||
|
||||
echo "Davidson CI report generated"
|
||||
Reference in New Issue
Block a user