fix(scan): merge semgrep + trivy into one job (act_runner race) #1

Merged
JonKazama-Hellion merged 1 commits from fix/sequential-scan-jobs into main 2026-05-11 23:12:56 +00:00
Collaborator

Was und warum

Aktuell definiert das reusable Workflow zwei parallele Jobs (semgrep + trivy). act_runner v0.6.1 startet beide gleichzeitig im selben Task und beide machen chown -R 1001:1001 /workspace/... parallel — Race-Condition. Einer der Container (in der Praxis Semgrep) bekommt /var/run/act/ nie korrekt provisioniert und failed silent (Job-API zeigt steps: [], nur Trivy-Logs sichtbar). Der gesamte Run wird als failure markiert obwohl Trivy 0 Vulns findet.

Beobachtet auf hellion-initiative-v3 (alle Runs seit Forge-Cutover am 9. Mai failen), erwartbar für alle 8 Repos die das reusable Workflow nutzen.

Fix

Ein einziger scan-Job mit beiden Tools sequenziell als Steps:

  1. Checkout
  2. Setup Python
  3. Install Semgrep
  4. Install Trivy
  5. Run Semgrep SAST
  6. Run Trivy filesystem scan (if: always() damit Trivy auch bei Semgrep-Fail läuft)

Kein paralleles Workspace-Sharing mehr, klarer Log-Stream, ein Lifecycle.

Nach Merge

  • In jedem Consumer-Repo den nächsten Push abwarten oder Workflow manuell re-runnen
  • hellion-initiative-v3 zuerst verifizieren — alle bisherigen Runs failed dort
## Was und warum Aktuell definiert das reusable Workflow zwei parallele Jobs (`semgrep` + `trivy`). act_runner v0.6.1 startet beide gleichzeitig im selben Task und beide machen `chown -R 1001:1001 /workspace/...` parallel — Race-Condition. Einer der Container (in der Praxis Semgrep) bekommt `/var/run/act/` nie korrekt provisioniert und failed silent (Job-API zeigt `steps: []`, nur Trivy-Logs sichtbar). Der gesamte Run wird als failure markiert obwohl Trivy 0 Vulns findet. Beobachtet auf hellion-initiative-v3 (alle Runs seit Forge-Cutover am 9. Mai failen), erwartbar für alle 8 Repos die das reusable Workflow nutzen. ## Fix Ein einziger `scan`-Job mit beiden Tools sequenziell als Steps: 1. Checkout 2. Setup Python 3. Install Semgrep 4. Install Trivy 5. Run Semgrep SAST 6. Run Trivy filesystem scan (`if: always()` damit Trivy auch bei Semgrep-Fail läuft) Kein paralleles Workspace-Sharing mehr, klarer Log-Stream, ein Lifecycle. ## Nach Merge - [ ] In jedem Consumer-Repo den nächsten Push abwarten oder Workflow manuell re-runnen - [ ] hellion-initiative-v3 zuerst verifizieren — alle bisherigen Runs failed dort
renovate-bot added 1 commit 2026-05-11 23:11:39 +00:00
act_runner v0.6.1 fails when 2 jobs in the same task chown the shared workspace in parallel. Sequential steps inside one job sidestep the issue.

Trivy step uses if: always() so both tools surface findings in a single run.
renovate-bot added 1 commit 2026-05-11 23:11:41 +00:00
act_runner v0.6.1 fails when 2 jobs in the same task chown the shared workspace in parallel. Sequential steps inside one job sidestep the issue.

Trivy step uses if: always() so both tools surface findings in a single run.
JonKazama-Hellion merged commit 1222381732 into main 2026-05-11 23:12:56 +00:00
JonKazama-Hellion deleted branch fix/sequential-scan-jobs 2026-05-11 23:12:56 +00:00
Sign in to join this conversation.