diff --git a/.gitea/workflows/test-pr.yaml b/.gitea/workflows/test-pr.yaml index 33a868a..6da108e 100644 --- a/.gitea/workflows/test-pr.yaml +++ b/.gitea/workflows/test-pr.yaml @@ -10,6 +10,8 @@ jobs: - uses: actions/setup-go@main with: go-version-file: 'go.mod' - - run: go mod tidy + - uses: FedericoCarboni/setup-ffmpeg@v3 + - run: go mod tidy + - run: cd web && npm install && npm run build - run: go build ./... - run: go test -race -v -shuffle=on ./... \ No newline at end of file diff --git a/internal/runner/runner.go b/internal/runner/runner.go index 1d7fa9d..cb7e816 100644 --- a/internal/runner/runner.go +++ b/internal/runner/runner.go @@ -289,6 +289,10 @@ func (r *Runner) uploadOutputs(ctx *tasks.Context, job *api.NextJobResponse) err log.Printf("Failed to upload %s: %v", filePath, err) } else { ctx.OutputUploaded(entry.Name()) + // Delete file after successful upload to prevent duplicate uploads + if err := os.Remove(filePath); err != nil { + log.Printf("Warning: Failed to delete file %s after upload: %v", filePath, err) + } } } diff --git a/internal/runner/tasks/encode.go b/internal/runner/tasks/encode.go index 06ebd8d..f0d6984 100644 --- a/internal/runner/tasks/encode.go +++ b/internal/runner/tasks/encode.go @@ -373,6 +373,12 @@ func (p *EncodeProcessor) Process(ctx *Context) error { ctx.Info(fmt.Sprintf("Successfully uploaded %s: %s", strings.ToUpper(outputExt), filepath.Base(outputVideo))) + // Delete file after successful upload to prevent duplicate uploads + if err := os.Remove(outputVideo); err != nil { + log.Printf("Warning: Failed to delete video file %s after upload: %v", outputVideo, err) + ctx.Warn(fmt.Sprintf("Warning: Failed to delete video file after upload: %v", err)) + } + log.Printf("Successfully generated and uploaded %s for job %d: %s", strings.ToUpper(outputExt), ctx.JobID, filepath.Base(outputVideo)) return nil }