chore(ci): SonarCloud-Auto-Snapshot + Playwright-E2E#3
Merged
Conversation
Erste Playwright-Suite unter cvm-frontend/e2e/. Smoke deckt den kritischen Pfad ab: gegen geschuetzte Route navigieren, ueber Keycloak einloggen (a.admin@ahs.test), dashboard pruefen. - playwright.config.ts: baseURL aus env, trace/screenshot/video retain-on-failure, nur Chromium. - @playwright/test als devDependency, neue Scripts e2e + e2e:install. - gitignore-Eintraege fuer playwright-report/test-results/PID-Dateien. https://claude.ai/code/session_014NNjRKw5bDqRffqCUGe8ud
CI ersetzt die bisherige GitLab-Pipeline auf GitHub Actions: - backend: mvn verify (Tests + JaCoCo), Sonar-Scan via sonar-maven-plugin und Snapshot-Issue-Update nur auf push nach main. - frontend: Lint, Karma-Tests (ChromeHeadlessNoSandbox), Build. - e2e: Postgres + Keycloak als Service-Container, Backend-JAR und Frontend-Dist aus den vorherigen Jobs, Playwright-Smoke gegen laufenden Stack. Trace/Screenshot/Video bei Failure als Artefakt. scripts/fetch-sonar-issues.sh paginiert die offenen Sonar-Issues (componentKeys=sebolber_PortalSecurityScan, resolved=false) und rendert sie nach Severity + Datei gruppiert in Markdown. WAIT_FOR_SCAN=1 pollt api/ce/component bis der Scan-Status final ist, damit der Snapshot frische Daten enthaelt. Parent-POM: sonar.projectKey/organization auf sebolber_PortalSecurityScan / sebolber gesetzt (vorher TBD), jacoco-Pfad auf per-Modul-Default korrigiert, da kein jacoco-aggregate konfiguriert ist. https://claude.ai/code/session_014NNjRKw5bDqRffqCUGe8ud
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Zwei Werkzeuge, die kuenftige Aufgaben spuerbar verkleinern:
pushaufmainrendertscripts/fetch-sonar-issues.shdie offenen SonarCloud-Issues in Markdown (Severity > Datei,<details>-Bloecke, Rule-Links). Ein neuer Workflow-Step schreibt das Ergebnis in den Body einer pinned GitHub-Issue mit Labelsonar-snapshot. Damit lassen sich Findings uebermcp__github__list_issues --labels sonar-snapshotohne Pasten lesen.cvm-frontend/e2e/smoke.spec.tsfaehrt headless Chromium gegen einen frisch gebauten Stack (Postgres + Keycloak + Backend + Frontend), loggt sich alsa.admin@ahs.testper Keycloak ein und verifiziert das Dashboard. Trace/Screenshot/Video als Artefakt bei Failure.Bonus, weil ohnehin noetig: vorhandene GitLab-CI-Definition (
.gitlab-ci.yml) inhaltlich auf GitHub Actions uebersetzt (.github/workflows/ci.yml) - Backend, Frontend und E2E laufen parallel/abhaengig wie vorher.Was wird wann ausgefuehrt
pull_requestpush: mainSONAR_TOKENgesetzt)workflow_dispatchGeaenderte/neue Dateien
.github/workflows/ci.yml(neu) - 3 Jobs: backend (Maven verify + Sonar-Scan + Snapshot), frontend (Lint + Karma + Build), e2e (Postgres + Keycloak services, Realm-Import, Backend-JAR + http-server, Playwright).scripts/fetch-sonar-issues.sh(neu) - paginiert/api/issues/search, rendert Markdown, optionalWAIT_FOR_SCAN=1(pollt/api/ce/component).pom.xml-sonar.projectKey=sebolber_PortalSecurityScan,sonar.organization=sebolber,sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml(per-Modul-Default, da keinjacoco-aggregatekonfiguriert ist),sonar.exclusionsfuer dist/node_modules/generated.cvm-frontend/playwright.config.ts(neu) - baseURL aus env, Chromium-only, retain-on-failure fuer Trace/Screenshot/Video.cvm-frontend/e2e/smoke.spec.ts(neu) - Smoke/queue -> Keycloak -> /dashboard.cvm-frontend/package.json+package-lock.json-@playwright/testals devDependency, neue Scriptse2eunde2e:install..gitignore- Playwright-Artefakte und PID-Dateien.Vor dem Merge bitte sicherstellen
SONAR_TOKENist in den Repo-Secrets gesetzt (sonst skippt der Sonar-Step zur Laufzeit, durchif: env.SONAR_TOKEN != '').sebolber_PortalSecurityScanexistiert unter Organisationsebolberund die Analysis Method ist auf "GitHub Actions" / CI-basiert gestellt (nicht "Automatic Analysis").Test plan
backend,frontend,e2elaufen ohne Sonar-Step.main-Run erzeugt die SonarCloud-Analyse und legt die GitHub-Issue mit Labelsonar-snapshotan.Folge-Aufgabe (Phase D)
Sobald die Snapshot-Issue auf
mainexistiert: ich lese sie ueberlist_issues --labels sonar-snapshot, gruppiere die Findings nach Sonar-Regel und arbeite Regel-Cluster fuer Regel-Cluster ab (ein Commit pro Cluster, lokaler Testlauf zwischen Clustern).https://claude.ai/code/session_014NNjRKw5bDqRffqCUGe8ud
Generated by Claude Code