Commit 1959abe
Eric Bower
·
2026-08-09 11:43:44 -0400 EDT
parent fb2b232
fix: rsync dest
1 files changed,
+13,
-9
M
main.go
M
main.go
+13,
-9
1@@ -1743,21 +1743,22 @@ func syncJobArtifacts(cfg *Cfg, repoName, jobID string, log *slog.Logger) error
2 }
3 sshArgs = fmt.Sprintf("-F ~/.ssh/config -i %s%s", cfg.KeyLocation, certFile)
4 }
5- // Source is jobDir (without trailing slash) so rsync creates
6- // the jobID subdirectory inside the destination folder.
7+ // Source is jobDir (with trailing slash) so rsync copies
8+ // the job's artifact contents directly into event.ArtifactDest.
9 dest := event.ArtifactDest
10 if !strings.HasSuffix(dest, "/") {
11 dest += "/"
12 }
13+ srcDir := strings.TrimSuffix(jobDir, "/") + "/"
14 var cmd *exec.Cmd
15 if sshArgs != "" {
16- cmd = exec.Command("rsync", "-e", sshArgs, "-rv", jobDir, dest)
17+ cmd = exec.Command("rsync", "-e", sshArgs, "-rv", srcDir, dest)
18 } else {
19- cmd = exec.Command("rsync", "-rv", jobDir, dest)
20+ cmd = exec.Command("rsync", "-rv", srcDir, dest)
21 }
22 rsyncCmd := fmt.Sprintf("rsync %s %s %s",
23 strings.TrimLeft(cmd.Args[1], "-"),
24- jobDir, dest)
25+ srcDir, dest)
26 log.Info("rsync", "cmd", rsyncCmd)
27 return runCmd(cmd, log)
28 }
29@@ -2227,6 +2228,10 @@ func runLocal(cfg *Cfg, dest string) error {
30 _ = os.Setenv(key, val)
31 }
32
33+ if dest != "" {
34+ eventData.ArtifactDest = strings.TrimSuffix(dest, "/") + "/" + eventData.JobID
35+ }
36+
37 // Auto-detect git commit SHA and branch if not explicitly provided via -e
38 if eventData.Commit == "" {
39 eventData.Commit = detectGitCommit(cwd)
40@@ -2326,12 +2331,11 @@ func runLocal(cfg *Cfg, dest string) error {
41
42 // Sync to destination if specified
43 if dest != "" {
44- targetDest := strings.TrimSuffix(dest, "/") + "/" + jobID
45- fmt.Fprintf(os.Stdout, "🔄 rsyncing artifacts to %s...\n", dest) //nolint:errcheck
46- if err := syncJobArtifacts(cfg, eventData.Name, jobID, log); err != nil {
47+ fmt.Fprintf(os.Stdout, "🔄 rsyncing artifacts to %s...\n", eventData.ArtifactDest) //nolint:errcheck
48+ if err := syncJobArtifacts(cfg, eventData.Name, eventData.JobID, log); err != nil {
49 return fmt.Errorf("sync artifacts: %w", err)
50 }
51- fmt.Fprintf(os.Stdout, "✅ artifacts rsynced to %s\n", targetDest) //nolint:errcheck
52+ fmt.Fprintf(os.Stdout, "✅ artifacts rsynced to %s\n", eventData.ArtifactDest) //nolint:errcheck
53 }
54
55 return nil