Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
6f091cd9e3 | |||
aa1ecdd19a | |||
bffdd4e1f4 | |||
f4890bec77 | |||
9aaf218321 |
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@ -43,7 +43,9 @@ jobs:
|
||||
# key: ${{ secrets.KEY }}
|
||||
# port: ${{ secrets.PORT }}
|
||||
# script_stop: true
|
||||
# script: "mkdir abc/def,ls -al"
|
||||
# script: |
|
||||
# mkdir abc/def
|
||||
# ls -al
|
||||
|
||||
- name: pass environment
|
||||
uses: appleboy/ssh-action@master
|
||||
@ -56,5 +58,5 @@ jobs:
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO
|
||||
script: |
|
||||
echo "I am $FOO"
|
||||
echo "I am $BAR"
|
||||
echo "I am $FOO, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM appleboy/drone-ssh:1.5.2-linux-amd64
|
||||
FROM appleboy/drone-ssh:1.5.3-linux-amd64
|
||||
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
115
README.md
115
README.md
@ -1,6 +1,6 @@
|
||||
# 🚀 SSH for GitHub Actions
|
||||
|
||||
[GitHub Action](https://developer.github.com/actions/) for executing remote ssh commands.
|
||||
[GitHub Action](https://github.com/features/actions) for executing remote ssh commands.
|
||||
|
||||

|
||||
|
||||
@ -11,14 +11,22 @@
|
||||
Executing remote ssh commands.
|
||||
|
||||
```yaml
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
name: remote ssh command
|
||||
on: [push]
|
||||
jobs:
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
```
|
||||
|
||||
output:
|
||||
@ -28,9 +36,9 @@ output:
|
||||
whoami
|
||||
======END======
|
||||
out: ***
|
||||
==========================================
|
||||
Successfully executed commands to all host.
|
||||
==========================================
|
||||
==============================================
|
||||
✅ Successfully executed commands to all host.
|
||||
==============================================
|
||||
```
|
||||
|
||||
## Input variables
|
||||
@ -38,7 +46,7 @@ Successfully executed commands to all host.
|
||||
see the [action.yml](./action.yml) file for more detail imformation.
|
||||
|
||||
* host - scp remote host
|
||||
* port - scp remote port
|
||||
* port - scp remote port, default is `22`
|
||||
* username - scp username
|
||||
* password - scp password
|
||||
* timeout - timeout for ssh to remote host, default is `30s`
|
||||
@ -98,45 +106,62 @@ Multiple Commands
|
||||
Multiple Hosts
|
||||
|
||||
```diff
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com,bar.com"
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com,bar.com"
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
```
|
||||
|
||||
Pass environment variable to shell script
|
||||
|
||||
```diff
|
||||
uses: appleboy/ssh-action@master
|
||||
+ env:
|
||||
+ FOO: "BAR"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
+ envs: FOO
|
||||
script: |
|
||||
echo "I am $FOO"
|
||||
echo "I am $BAR"
|
||||
- name: pass environment
|
||||
uses: appleboy/ssh-action@master
|
||||
+ env:
|
||||
+ FOO: "BAR"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
+ envs: FOO
|
||||
script: |
|
||||
echo "I am $FOO"
|
||||
echo "I am $BAR"
|
||||
```
|
||||
|
||||
Stop script after first failure. ex: missing `abc` folder
|
||||
|
||||
```yaml
|
||||
- name: stop script if command error
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: "mkdir abc/def,ls -al"
|
||||
```diff
|
||||
- name: stop script if command error
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
+ script_stop: true
|
||||
script: |
|
||||
mkdir abc/def
|
||||
ls -al
|
||||
```
|
||||
|
||||
output:
|
||||
|
||||
```sh
|
||||
======CMD======
|
||||
mkdir abc/def
|
||||
ls -al
|
||||
|
||||
======END======
|
||||
2019/11/21 01:16:21 Process exited with status 1
|
||||
err: mkdir: cannot create directory ‘abc/def’: No such file or directory
|
||||
##[error]Docker run failed with exit code 1
|
||||
```
|
||||
|
@ -6,6 +6,7 @@ inputs:
|
||||
description: 'ssh remote host'
|
||||
port:
|
||||
description: 'ssh remote port'
|
||||
default: 22
|
||||
username:
|
||||
description: 'ssh username'
|
||||
password:
|
||||
|
Reference in New Issue
Block a user