runner: fix rerun_job log delete — workflow_step_logs keys on workflow_step_id
7136ebc · gmorell · 2026-07-02 21:55
Files changed
modified
lib/git_gud/workflows.ex
+4
−2
@@ -1161,8 +1161,10 @@ defmodule GitGud.Workflows do
| 1161 | 1161 | end) |
| 1162 | 1162 | |
| 1163 | 1163 | Repo.transaction(fn -> |
| 1164 | − # clean slate for this job's logs + steps | |
| 1165 | − Repo.delete_all(from l in "workflow_step_logs", where: l.workflow_job_id == ^job.id) | |
| 1164 | + # clean slate for this job's logs + steps. Logs are keyed by | |
| 1165 | + # workflow_step_id, so scope by this job's step ids. | |
| 1166 | + step_ids_q = from(s in WorkflowStep, where: s.workflow_job_id == ^job.id, select: s.id) | |
| 1167 | + Repo.delete_all(from l in "workflow_step_logs", where: l.workflow_step_id in subquery(step_ids_q)) | |
| 1166 | 1168 | |
| 1167 | 1169 | Repo.update_all( |
| 1168 | 1170 | from(s in WorkflowStep, where: s.workflow_job_id == ^job.id), |
Parents: edf0da5