• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / spot / 28776070880
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/executor-correctness
DEFAULT BRANCH: master
Ran 06 Jul 2026 07:49AM UTC
Jobs 1
Files 19
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Jul 2026 07:47AM UTC coverage: 84.098%. First build
28776070880

Pull #358

github

paskal
executor: fix context-cancellation leaks, local copy bugs, drop dead options

- sshRun: buffer the done channel so the command goroutine can exit
  after a ctx-cancel return instead of blocking forever (goroutine leak).
- sftpUpload/sftpDownload: build the sftp client over an ssh session we
  hold (newSftpSession), and on ctx-cancel close that session to abort
  the in-flight transfer from outside the sftp mutex, then drain the copy
  goroutine before returning. newSftpSession drains the session stderr
  pipe in a goroutine (RequestSubsystem never starts the copy that
  Session.Stderr would use, so unread stderr would stall the channel).
  The cancel drain is bounded by a grace timeout so an app-level wedge
  cannot hang the deploy; a transport-level wedge is left to a follow-up.
- sftpDownload now downloads into a temp file in the destination dir and
  renames over the destination only on success, so a canceled or failed
  download no longer truncates or destroys an existing local file (newly
  reachable now that a download actually aborts mid-copy).
- Local.Upload: multi-file glob + mkdir creates the destination directory
  itself, and honors context cancellation between files.
- Local.Download: pass the caller context through.
- Connector.String: cap the private-key slice with min().
- Remove dead options never read by any executor: Checksum from
  UpDownOpts and SyncOpts, and Force from SyncOpts, plus the config
  sync 'force' field (undocumented no-op) and its schema entry. Behavior
  change: under strict YAML a playbook that set 'sync: {force: true}'
  will now fail to parse.
Pull Request #358: executor: fix context-cancellation leaks, local copy bugs, drop dead options

89 of 113 new or added lines in 4 files covered. (78.76%)

3279 of 3899 relevant lines covered (84.1%)

59.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
23
78.17
pkg/executor/remote.go
1
81.75
pkg/executor/local.go
Jobs
ID Job ID Ran Files Coverage
1 28776070880.1 06 Jul 2026 07:49AM UTC 19
84.1
GitHub Action Run
Source Files on build 28776070880
  • Tree
  • List 19
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #358
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc