Compare commits

..

No commits in common. "b27b9f8968f508f19656348e47e978c4686dbd2f" and "52a1840ca6cafe7e0e1e15e8649b935ba4e33077" have entirely different histories.

2 changed files with 55 additions and 31 deletions

View File

@ -24,5 +24,5 @@ changelog:
order: 4 order: 4
- title: "Documentation updates" - title: "Documentation updates"
regexp: ^.*?docs?(\(.+\))??!?:.+$ regexp: ^.*?docs?(\(.+\))??!?:.+$
order: 5 order: 4
- title: Others - title: Others

View File

@ -10,44 +10,68 @@ GITHUB_ACTION_PATH="${GITHUB_ACTION_PATH%/}"
DRONE_SSH_RELEASE_URL="${DRONE_SSH_RELEASE_URL:-https://github.com/appleboy/drone-ssh/releases/download}" DRONE_SSH_RELEASE_URL="${DRONE_SSH_RELEASE_URL:-https://github.com/appleboy/drone-ssh/releases/download}"
DRONE_SSH_VERSION="${DRONE_SSH_VERSION:-1.8.1}" DRONE_SSH_VERSION="${DRONE_SSH_VERSION:-1.8.1}"
function log_error() {
echo "$1" >&2
exit "$2"
}
function detect_client_info() { function detect_client_info() {
CLIENT_PLATFORM="${SSH_CLIENT_OS:-$(uname -s | tr '[:upper:]' '[:lower:]')}" if [ -n "${SSH_CLIENT_OS-}" ]; then
CLIENT_ARCH="${SSH_CLIENT_ARCH:-$(uname -m)}" CLIENT_PLATFORM="${SSH_CLIENT_OS}"
else
local kernel
kernel="$(uname -s)"
case "${kernel}" in
Darwin)
CLIENT_PLATFORM="darwin"
;;
Linux)
CLIENT_PLATFORM="linux"
;;
Windows)
CLIENT_PLATFORM="windows"
;;
*)
echo "Unknown, unsupported platform: ${kernel}." >&2
echo "Supported platforms: Linux, Darwin and Windows." >&2
echo "Bailing out." >&2
exit 2
;;
esac
fi
case "${CLIENT_PLATFORM}" in if [ -n "${SSH_CLIENT_ARCH-}" ]; then
darwin | linux | windows) ;; CLIENT_ARCH="${SSH_CLIENT_ARCH}"
*) log_error "Unknown or unsupported platform: ${CLIENT_PLATFORM}. Supported platforms are Linux, Darwin, and Windows." 2 ;; else
esac local machine
machine="$(uname -m)"
case "${CLIENT_ARCH}" in case "${machine}" in
x86_64* | i?86_64* | amd64*) CLIENT_ARCH="amd64" ;; x86_64* | i?86_64* | amd64*)
aarch64* | arm64*) CLIENT_ARCH="arm64" ;; CLIENT_ARCH="amd64"
*) log_error "Unknown or unsupported architecture: ${CLIENT_ARCH}. Supported architectures are x86_64, i686, and arm64." 3 ;; ;;
esac aarch64* | arm64*)
CLIENT_ARCH="arm64"
;;
*)
echo "Unknown, unsupported architecture (${machine})." >&2
echo "Supported architectures x86_64, i686, arm64." >&2
echo "Bailing out." >&2
exit 3
;;
esac
fi
} }
detect_client_info detect_client_info
DOWNLOAD_URL_PREFIX="${DRONE_SSH_RELEASE_URL}/v${DRONE_SSH_VERSION}" DOWNLOAD_URL_PREFIX="${DRONE_SSH_RELEASE_URL}/v${DRONE_SSH_VERSION}"
CLIENT_BINARY="drone-ssh-${DRONE_SSH_VERSION}-${CLIENT_PLATFORM}-${CLIENT_ARCH}" CLIENT_BINARY="drone-ssh-${DRONE_SSH_VERSION}-${CLIENT_PLATFORM}-${CLIENT_ARCH}"
TARGET="${GITHUB_ACTION_PATH}/${CLIENT_BINARY}" TARGET="${GITHUB_ACTION_PATH}/${CLIENT_BINARY}"
echo "Downloading ${CLIENT_BINARY} from ${DOWNLOAD_URL_PREFIX}" echo "Will download ${CLIENT_BINARY} from ${DOWNLOAD_URL_PREFIX}"
curl -fsSL --retry 5 --keepalive-time 2 "${DOWNLOAD_URL_PREFIX}/${CLIENT_BINARY}" -o "${TARGET}" curl -fsSL --retry 5 --keepalive-time 2 "${DOWNLOAD_URL_PREFIX}/${CLIENT_BINARY}" -o ${TARGET}
chmod +x "${TARGET}" chmod +x ${TARGET}
echo "======= CLI Version Information =======" echo "======= CLI Version ======="
"${TARGET}" --version sh -c "${TARGET} --version" # print version
echo "=======================================" echo "==========================="
if [[ "${INPUT_CAPTURE_STDOUT}" == 'true' ]]; then if [[ "$INPUT_CAPTURE_STDOUT" == 'true' ]]; then
{ echo 'stdout<<EOF' >>$GITHUB_OUTPUT # use heredoc for multiline output
echo 'stdout<<EOF' sh -c "${TARGET} $*" | tee -a $GITHUB_OUTPUT # run the command
"${TARGET}" "$@" | tee -a "${GITHUB_OUTPUT}" echo 'EOF' >>$GITHUB_OUTPUT
echo 'EOF'
} >>"${GITHUB_OUTPUT}"
else else
"${TARGET}" "$@" sh -c "${TARGET} $*" # run the command
fi fi