Compare commits

...

21 Commits

Author SHA1 Message Date
Jesse
51610e446e
Merge c1dc5db4d6 into 6137f733fb 2024-11-25 20:08:07 +00:00
GammaGames
c1dc5db4d6 tee 2024-11-25 13:08:02 -07:00
Jesse
e59e1d9285
Merge pull request #3 from GammaGames/capture_vars
Capture stdout
2024-11-25 12:19:38 -07:00
GammaGames
d855b8ad7c cleanup 2024-11-25 12:18:08 -07:00
GammaGames
210ea25b05 cleanup 2024-11-25 12:16:14 -07:00
GammaGames
058ddd1a69 test 2024-11-25 12:03:35 -07:00
GammaGames
4188bdc3ce capturing stdout 2024-11-25 11:59:10 -07:00
GammaGames
c14811a802 tesing 2024-11-25 11:53:22 -07:00
GammaGames
5ec72068f5 test variables 2024-11-25 11:49:07 -07:00
GammaGames
bd67bfa881 remove stderr, stdout works 2024-11-25 11:47:21 -07:00
GammaGames
4819506395 attempt tests 2024-11-25 10:34:29 -07:00
GammaGames
1a1adf6ba5 use env 2024-11-25 10:29:44 -07:00
GammaGames
765833ffce fix substitution? 2024-11-25 10:19:44 -07:00
GammaGames
4172428f49 make capturing optional 2024-11-22 16:56:52 -07:00
Jesse
fbf2b7866a
Merge branch 'appleboy:master' into master 2024-11-22 13:55:59 -07:00
Jesse
5b73b09c92
Merge branch 'appleboy:master' into master 2024-10-23 19:17:26 +00:00
Jesse
aed736182d
Merge pull request #2 from GammaGames/appleboy-master
Appleboy master
2024-07-19 13:54:57 -06:00
GammaGames
332ff99a47 Merge branch 'master' of github.com:appleboy/ssh-action into appleboy-master 2024-07-19 13:52:02 -06:00
Jesse
ec7832be1a
Merge branch 'appleboy:master' into master 2024-07-08 08:15:37 -06:00
GammaGames
396c696e03 syntax fix 2024-04-03 10:12:39 -06:00
GammaGames
27b687e565 rebase with upstream 2024-04-03 10:02:10 -06:00
3 changed files with 61 additions and 1 deletions

View File

@ -523,3 +523,48 @@ jobs:
command_timeout: 30s command_timeout: 30s
script: | script: |
whoami whoami
testing-capturing-output:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: create new ssh server
run: |
docker run -d \
--name=openssh-server \
--hostname=openssh-server \
-p 2222:2222 \
-e SUDO_ACCESS=false \
-e PASSWORD_ACCESS=true \
-e USER_PASSWORD=password \
-e USER_NAME=linuxserver.io \
--restart unless-stopped \
lscr.io/linuxserver/openssh-server:latest
docker exec openssh-server sh -c "hostname -i" > ip.txt
echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
cat ip.txt >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
echo "======= container ip address ========="
cat ip.txt
echo "======================================"
sleep 2
- id: stdout
name: ssh command with stdout
uses: ./
with:
host: ${{ env.REMOTE_HOST }}
username: linuxserver.io
password: password
port: 2222
capture_stdout: 'true'
script: |
#!/usr/bin/env bash
set -e
whoami
- name: check stdout
run: |
echo "stdout: ${{ steps.stdout.outputs.stdout }}"

View File

@ -77,6 +77,13 @@ inputs:
description: "pass all environment variable to shell script." description: "pass all environment variable to shell script."
request_pty: request_pty:
description: "Request a pseudo-terminal from the server." description: "Request a pseudo-terminal from the server."
capture_stdout:
description: "Capture the stdout of the commands."
default: "false"
outputs:
stdout:
description: 'Standard output of the executed commands.'
runs: runs:
using: "composite" using: "composite"
@ -124,6 +131,7 @@ runs:
INPUT_PROXY_USE_INSECURE_CIPHER: ${{ inputs.proxy_use_insecure_cipher }} INPUT_PROXY_USE_INSECURE_CIPHER: ${{ inputs.proxy_use_insecure_cipher }}
INPUT_PROXY_CIPHER: ${{ inputs.proxy_cipher }} INPUT_PROXY_CIPHER: ${{ inputs.proxy_cipher }}
INPUT_SYNC: ${{ inputs.sync }} INPUT_SYNC: ${{ inputs.sync }}
INPUT_CAPTURE_STDOUT: ${{ inputs.capture_stdout }}
branding: branding:
icon: "terminal" icon: "terminal"

View File

@ -64,7 +64,14 @@ TARGET="${GITHUB_ACTION_PATH}/${CLIENT_BINARY}"
echo "Will download ${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 =======" echo "======= CLI Version ======="
sh -c "${TARGET} --version" # print version sh -c "${TARGET} --version" # print version
echo "===========================" echo "==========================="
if [[ "$INPUT_CAPTURE_STDOUT" == 'true' ]]; then
echo 'stdout<<EOF' >> $GITHUB_OUTPUT # use heredoc for multiline output
sh -c "${TARGET} $*" | tee -a $GITHUB_OUTPUT # run the command
echo 'EOF' >> $GITHUB_OUTPUT
else
sh -c "${TARGET} $*" # run the command sh -c "${TARGET} $*" # run the command
fi