fix: append .exe suffix to Windows binary download filename (#418)
testing main branch / check-ssh-key (push) Failing after 9m57s
testing main branch / support-key-passphrase (push) Failing after 9m57s
testing main branch / default-user-name-password (push) Failing after 10m0s
testing main branch / testing-with-env (push) Failing after 13s
testing main branch / some special character (push) Failing after 17s
testing main branch / testing-capturing-output (push) Failing after 23s
testing main branch / multiple-server (push) Failing after 10m44s
testing main branch / testing-script-stop (push) Failing after 22s
testing main branch / testing-script-error (push) Failing after 16s
testing stable version / default-user-name-password (push) Failing after 26s
testing stable version / support-key-passphrase (push) Failing after 19s
testing stable version / check-ssh-key (push) Failing after 22s
testing main branch / testing ipv6 (push) Failing after 1m24s
testing stable version / support-ed25519-key (push) Failing after 14s
testing stable version / testing-with-env (push) Failing after 16s
Trivy Security Scan / Trivy Security Scan (push) Failing after 12m59s
testing main branch / windows-binary-download (push) Has been cancelled
testing main branch / support-ed25519-key (push) Failing after 13s
testing stable version / multiple-server (push) Failing after 12s

* fix: append .exe suffix to Windows binary download filename

The drone-ssh release publishes Windows assets with an .exe suffix
(e.g. drone-ssh-1.8.2-windows-amd64.exe), but entrypoint.sh built the
download filename without it, so every Windows runner failed with a 404
at the download step (ERR_DOWNLOAD_FAILED).

Append .exe when the detected platform is windows. This also keeps the
checksums.txt lookup working on Windows since entries match the exact
asset name. Add a windows-latest CI job that exercises the download,
checksum verification, and binary execution path.

Fixes #417

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: detect Git Bash/MSYS/Cygwin uname output as windows platform

On windows-latest runners, bash steps run under Git Bash where
uname -s reports MINGW64_NT-10.0-<build>, so platform detection
rejected Windows runners with ERR_UNKNOWN_PLATFORM before the
download step was even reached. Map mingw*/msys*/cygwin* to windows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bo-Yi Wu
2026-08-15 11:59:12 +08:00
committed by GitHub
co-authored by Claude Fable 5
parent ca58dd0ce3
commit 7e02feefeb
2 changed files with 20 additions and 0 deletions
+6
View File
@@ -26,6 +26,8 @@ function detect_client_info() {
case "${CLIENT_PLATFORM}" in
darwin | linux | windows) ;;
# Git Bash / MSYS2 / Cygwin on Windows runners report e.g. MINGW64_NT-10.0
mingw* | msys* | cygwin*) CLIENT_PLATFORM="windows" ;;
*) log_error "Unknown or unsupported platform: ${CLIENT_PLATFORM}. Supported platforms are Linux, Darwin, and Windows." "${ERR_UNKNOWN_PLATFORM}" ;;
esac
@@ -39,6 +41,10 @@ function detect_client_info() {
detect_client_info
DOWNLOAD_URL_PREFIX="${DRONE_SSH_RELEASE_URL}/v${DRONE_SSH_VERSION}"
CLIENT_BINARY="drone-ssh-${DRONE_SSH_VERSION}-${CLIENT_PLATFORM}-${CLIENT_ARCH}"
# Windows release assets are published with an .exe suffix
if [[ "${CLIENT_PLATFORM}" == "windows" ]]; then
CLIENT_BINARY="${CLIENT_BINARY}.exe"
fi
TARGET="${GITHUB_ACTION_PATH}/${CLIENT_BINARY}"
# Check if binary already exists and is executable (caching)