From 1b311559303b93c2eb299a634b4939d92bcf4e53 Mon Sep 17 00:00:00 2001 From: silverwind Date: Mon, 2 Mar 2026 11:14:28 +0100 Subject: [PATCH] fix: clean up bind_workdir workspace after job execution When bind_workdir is enabled, workspace directories persist on the host after container removal. Clean them up after job execution to prevent stale files from accumulating. Co-Authored-By: Claude Opus 4.6 --- internal/app/run/runner.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/app/run/runner.go b/internal/app/run/runner.go index 1660ae6a..094ac920 100644 --- a/internal/app/run/runner.go +++ b/internal/app/run/runner.go @@ -8,6 +8,7 @@ import ( "encoding/json" "fmt" "maps" + "os" "path/filepath" "strings" "sync" @@ -245,6 +246,13 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. execErr := executor(ctx) reporter.SetOutputs(job.Outputs) + + if r.cfg.Container.BindWorkdir { + if err := os.RemoveAll(runnerConfig.Workdir); err != nil { + log.Warnf("failed to clean up workspace %s: %v", runnerConfig.Workdir, err) + } + } + return execErr }