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

paskal / spot
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/executor-correctness
DEFAULT BRANCH: master
Repo Added 07 Mar 2026 08:35PM UTC
Token ZezcjnW50zC8ZDgUJHEnwbPOiMHNtUu1v regen
Build 11 Last
Files 19
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

LAST BUILD ON BRANCH fix/executor-correctness
branch: fix/executor-correctness
CHANGE BRANCH
x
Reset
Sync Branches
  • fix/executor-correctness
  • ci/workflow-hardening
  • fix/config-parsing
  • fix/defensive-guards
  • fix/docs-ci-hygiene

06 Jul 2026 07:49AM UTC coverage: 83.797% (-0.07%) from 83.862%
28776177470

push

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.

87 of 117 new or added lines in 4 files covered. (74.36%)

93 existing lines in 3 files now uncovered.

3253 of 3882 relevant lines covered (83.8%)

58.21 hits per line

Relevant lines Covered
Build:
Build:
3882 RELEVANT LINES 3253 COVERED LINES
58.21 HITS PER LINE
Source Files on fix/executor-correctness
  • Tree
  • List 19
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28776177470 fix/executor-correctness 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: ... push 06 Jul 2026 07:51AM UTC paskal github
83.8
28776068980 fix/executor-correctness 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: ... push 06 Jul 2026 07:49AM UTC paskal github
83.86
28757658465 fix/executor-correctness 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: ... push 05 Jul 2026 10:54PM UTC paskal github
83.64
28754878221 fix/executor-correctness 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: ... push 05 Jul 2026 09:07PM UTC paskal github
83.78
28750023671 fix/executor-correctness 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: ... push 05 Jul 2026 06:09PM UTC paskal github
84.05
See All Builds (11)

Badge your Repo: spot

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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