diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 20a57db..a80890c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -31,35 +31,43 @@ jobs: make coverage make test-report - - name: Traceability + Diagramme + API-Doc + Landing-Page + - name: Traceability + Diagramme + API-Doc run: | python3 tools/traceability.py publish docs/traceability python3 tools/render_plantuml.py make docs - make landing-page - - name: Cppcheck-Report (XML) + - name: Cppcheck-Report (XML + HTML) run: | mkdir -p build cppcheck --enable=all --inconclusive --xml --xml-version=2 \ -I src src 2> build/cppcheck-report.xml || true + cppcheck-htmlreport \ + --file=build/cppcheck-report.xml \ + --report-dir=build/cppcheck-html \ + --source-dir=. \ + --title="demo-epb Cppcheck Report" || echo "htmlreport skipped" + + - name: Landing-Page + run: make landing-page - name: Release-Bundle paketieren run: | BUNDLE="release/demo-epb-${TAG}" - mkdir -p "$BUNDLE"/{coverage,traceability,diagrams,api-doc,reports,docs,src,tests} + mkdir -p "$BUNDLE"/{coverage,traceability,diagrams,api-doc,reports/cppcheck,docs,src,tests} # Landing-Page (Startseite) im Bundle-Root cp build/index.html "$BUNDLE/index.html" # CI-generierte Artefakte - cp -r build/coverage-html/* "$BUNDLE/coverage/" 2>/dev/null || true + cp -r build/coverage-html/* "$BUNDLE/coverage/" 2>/dev/null || true cp -r docs/traceability/* "$BUNDLE/traceability/" cp -r docs/diagrams/* "$BUNDLE/diagrams/" - cp -r build/api-doc/html/* "$BUNDLE/api-doc/" 2>/dev/null || true - cp build/cppcheck-report.xml "$BUNDLE/reports/" 2>/dev/null || true - cp build/test-report.html "$BUNDLE/reports/" 2>/dev/null || true - cp build/test-report.md "$BUNDLE/reports/" 2>/dev/null || true + cp -r build/api-doc/html/* "$BUNDLE/api-doc/" 2>/dev/null || true + cp build/cppcheck-report.xml "$BUNDLE/reports/" 2>/dev/null || true + cp -r build/cppcheck-html/* "$BUNDLE/reports/cppcheck/" 2>/dev/null || true + cp build/test-report.html "$BUNDLE/reports/" 2>/dev/null || true + cp build/test-report.md "$BUNDLE/reports/" 2>/dev/null || true # Source-Code zum Anklicken aus dem Bundle (begrenzt auf das wichtigste) cp -r src/*.c src/*.h "$BUNDLE/src/" 2>/dev/null || true diff --git a/.gitea/workflows/validate.yml b/.gitea/workflows/validate.yml index 734b734..fdecd09 100644 --- a/.gitea/workflows/validate.yml +++ b/.gitea/workflows/validate.yml @@ -87,11 +87,17 @@ jobs: - name: Doxygen API-Dokumentation run: make docs - - name: Cppcheck-Report (XML) + - name: Cppcheck-Report (XML + HTML) run: | mkdir -p build cppcheck --enable=all --inconclusive --xml --xml-version=2 \ -I src src 2> build/cppcheck-report.xml || true + # cppcheck-htmlreport ist Teil des cppcheck-Pakets + cppcheck-htmlreport \ + --file=build/cppcheck-report.xml \ + --report-dir=build/cppcheck-html \ + --source-dir=. \ + --title="demo-epb Cppcheck Report" || echo "htmlreport skipped" - name: Landing-Page run: make landing-page @@ -156,7 +162,7 @@ jobs: echo "Mount $DEPLOY nicht da — Runner-Config pruefen. Skip." exit 0 fi - mkdir -p "$DEPLOY"/{docs,coverage,traceability,diagrams,api-doc,reports,src,misra/records} + mkdir -p "$DEPLOY"/{docs,coverage,traceability,diagrams,api-doc,reports/cppcheck,src,misra/records} cp build/index.html "$DEPLOY/index.html" cp -r docs/plaene docs/safety docs/manuals docs/reviews docs/non-conformities "$DEPLOY/docs/" cp -r build/coverage-html/. "$DEPLOY/coverage/" 2>/dev/null || true @@ -165,6 +171,7 @@ jobs: cp -r build/api-doc/html/. "$DEPLOY/api-doc/" 2>/dev/null || true cp build/test-report.html build/test-report.md "$DEPLOY/reports/" 2>/dev/null || true cp build/cppcheck-report.xml "$DEPLOY/reports/" 2>/dev/null || true + cp -r build/cppcheck-html/. "$DEPLOY/reports/cppcheck/" 2>/dev/null || true cp src/*.c src/*.h "$DEPLOY/src/" cp -r src/stubs "$DEPLOY/src/" 2>/dev/null || true cp -r misra/records/. "$DEPLOY/misra/records/" 2>/dev/null || true diff --git a/tools/generate_landing_page.py b/tools/generate_landing_page.py index d5815c0..97cf81e 100644 --- a/tools/generate_landing_page.py +++ b/tools/generate_landing_page.py @@ -242,8 +242,10 @@ footer {{ text-align: center; color: #888; padding: 30px; font-size: 13px; }} "Statement + Branch Coverage, klickbar bis Zeilen-Level") html_body += report_link("API-Dokumentation (Doxygen)", rep_paths["api"], True, "Alle Header + Funktionen, mit @arch/@reqs/@asil") - html_body += report_link("Cppcheck-Report (XML)", rep_paths["cppcheck"], True, - "Statische Analyse + MISRA-Findings (XML zum Download)") + html_body += report_link("Cppcheck-Report (HTML)", "reports/cppcheck/index.html", True, + "Statische Analyse + MISRA-Findings, klickbar pro Datei") + html_body += report_link("Cppcheck-Report (XML, Roh)", rep_paths["cppcheck"], True, + "Maschinen-lesbares Format fuer eigene Tools") html_body += "" # Diagrams