Compare commits
10 Commits
d87d276960
...
8f94919856
Author | SHA1 | Date |
---|---|---|
Bo-Yi Wu | 8f94919856 | |
Bo-Yi Wu | 2344d97573 | |
Bo-Yi Wu | b9f6bf6223 | |
appleboy | 4330a1ea48 | |
appleboy | 55dabf81b4 | |
appleboy | 8d9094f3b1 | |
Bo-Yi Wu | 5ac43dd762 | |
Bo-Yi Wu | a01d3ea1df | |
Bo-Yi Wu | c7d850f6cd | |
Bo-Yi Wu | f579d71942 |
|
@ -6,129 +6,128 @@ env:
|
|||
BAR: "FOO"
|
||||
|
||||
jobs:
|
||||
|
||||
testing01:
|
||||
name: default flag testing
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: correct password but wrong key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
key: "1234"
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
- name: correct password but wrong key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
key: "1234"
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
|
||||
- name: wrong password but correct key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: "abcdef"
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
- name: wrong password but correct key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: "abcdef"
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
|
||||
- name: executing remote ssh commands using password
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
- name: executing remote ssh commands using password
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
|
||||
- name: executing remote ssh commands using ssh key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
- name: executing remote ssh commands using ssh key
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: whoami
|
||||
|
||||
- name: multiple command
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
- name: multiple command
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
|
||||
- name: stop script if command error
|
||||
uses: ./
|
||||
continue-on-error: true
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
sync: true
|
||||
debug: true
|
||||
script: |
|
||||
mkdir abc/def
|
||||
ls -al
|
||||
- name: stop script if command error
|
||||
uses: ./
|
||||
continue-on-error: true
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
sync: true
|
||||
debug: true
|
||||
script: |
|
||||
mkdir abc/def
|
||||
ls -al
|
||||
|
||||
- name: ssh key passphrase
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.SSH2 }}
|
||||
port: ${{ secrets.PORT }}
|
||||
passphrase: ${{ secrets.PASSPHRASE }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
- name: ssh key passphrase
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.SSH2 }}
|
||||
port: ${{ secrets.PORT }}
|
||||
passphrase: ${{ secrets.PASSPHRASE }}
|
||||
script: |
|
||||
whoami
|
||||
ls -al
|
||||
|
||||
- name: use insecure cipher
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
- name: use insecure cipher
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
ls \
|
||||
-lah
|
||||
use_insecure_cipher: true
|
||||
use_insecure_cipher: true
|
||||
|
||||
# https://github.com/appleboy/ssh-action/issues/75#issuecomment-668314271
|
||||
- name: Multiline SSH commands interpreted as single lines
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
# https://github.com/appleboy/ssh-action/issues/75#issuecomment-668314271
|
||||
- name: Multiline SSH commands interpreted as single lines
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
ls \
|
||||
-lah
|
||||
use_insecure_cipher: true
|
||||
use_insecure_cipher: true
|
||||
|
||||
# https://github.com/appleboy/ssh-action/issues/85
|
||||
- name: Deployment to multiple hosts with different ports
|
||||
uses: ./
|
||||
with:
|
||||
host: "${{ secrets.HOST }}:${{ secrets.PORT }}"
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: 1024
|
||||
script_stop: true
|
||||
script: |
|
||||
# https://github.com/appleboy/ssh-action/issues/85
|
||||
- name: Deployment to multiple hosts with different ports
|
||||
uses: ./
|
||||
with:
|
||||
host: "${{ secrets.HOST }}:${{ secrets.PORT }}"
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: 1024
|
||||
script_stop: true
|
||||
script: |
|
||||
ls \
|
||||
-lah
|
||||
use_insecure_cipher: true
|
||||
use_insecure_cipher: true
|
||||
|
||||
# - name: SSH ED25519 Private Key
|
||||
# uses: ./
|
||||
|
@ -143,105 +142,122 @@ jobs:
|
|||
name: testing with envs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: pass environment
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO
|
||||
script: |
|
||||
echo "I am $FOO, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
- name: pass environment
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO
|
||||
script: |
|
||||
echo "I am $FOO, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
|
||||
- name: pass multiple environment
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
BAR: "FOO"
|
||||
SHA: ${{ github.sha }}
|
||||
PORT: ${{ secrets.PORT }}
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO,BAR,SHA,PORT
|
||||
script: |
|
||||
echo "I am $FOO, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
echo "sha: $SHA"
|
||||
echo "port: $PORT"
|
||||
sh test.sh
|
||||
- name: pass multiple environment
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
BAR: "FOO"
|
||||
SHA: ${{ github.sha }}
|
||||
PORT: ${{ secrets.PORT }}
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO,BAR,SHA,PORT
|
||||
script: |
|
||||
echo "I am $FOO, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
echo "sha: $SHA"
|
||||
echo "port: $PORT"
|
||||
sh test.sh
|
||||
|
||||
- name: custom envs format
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
AAA: "BBB"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO,BAR,AAA
|
||||
envs_format: export TEST_{NAME}={VALUE}
|
||||
script: |
|
||||
echo "I am $TEST_FOO, thanks"
|
||||
echo "I am $TEST_BAR, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
echo "I am $TEST_AAA, thanks"
|
||||
- name: custom envs format
|
||||
uses: ./
|
||||
env:
|
||||
FOO: "BAR"
|
||||
AAA: "BBB"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
envs: FOO,BAR,AAA
|
||||
envs_format: export TEST_{NAME}={VALUE}
|
||||
script: |
|
||||
echo "I am $TEST_FOO, thanks"
|
||||
echo "I am $TEST_BAR, thanks"
|
||||
echo "I am $BAR, thanks"
|
||||
echo "I am $TEST_AAA, thanks"
|
||||
|
||||
- name: pass all ENV variables to script
|
||||
uses: ./
|
||||
env:
|
||||
INPUT_FOO: "BAR"
|
||||
INPUT_AAA: "BBB"
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
allenvs: true
|
||||
script: |
|
||||
echo "I am $INPUT_FOO, thanks"
|
||||
echo "I am $INPUT_AAA, thanks"
|
||||
echo "$GITHUB_BASE_REF"
|
||||
echo "$GITHUB_REF"
|
||||
|
||||
testing03:
|
||||
name: git clone and pull
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: clone private repository
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
git clone https://appleboy:${{ secrets.TEST_TOKEN }}@github.com/go-training/self-runner.git test_repository
|
||||
rm -rf test_repository
|
||||
- name: clone private repository
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
git clone https://appleboy:${{ secrets.TEST_TOKEN }}@github.com/go-training/self-runner.git test_repository
|
||||
rm -rf test_repository
|
||||
|
||||
testing04:
|
||||
name: docker login and pull
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: login GitHub Container Registry
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u github.actor --password-stdin
|
||||
- name: login GitHub Container Registry
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u github.actor --password-stdin
|
||||
|
||||
- name: login DockerHub Container Registry
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
|
||||
- name: login DockerHub Container Registry
|
||||
uses: ./
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script_stop: true
|
||||
script: |
|
||||
echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
FROM ghcr.io/appleboy/drone-ssh:1.6.13
|
||||
FROM ghcr.io/appleboy/drone-ssh:1.7.1
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
COPY entrypoint.sh /bin/entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/bin/entrypoint.sh"]
|
||||
|
|
88
README.md
88
README.md
|
@ -16,38 +16,38 @@ This thing is built using [Golang](https://go.dev) and [drone-ssh](https://githu
|
|||
|
||||
See [action.yml](./action.yml) for more detailed information.
|
||||
|
||||
* `host` - ssh host
|
||||
* `port` - ssh port, default is `22`
|
||||
* `username` - ssh username
|
||||
* `password` - ssh password
|
||||
* `passphrase` - the passphrase is usually to encrypt the private key
|
||||
* `sync` - synchronous execution if multiple hosts, default is false
|
||||
* `timeout` - timeout for ssh to remote host, default is `30s`
|
||||
* `command_timeout` - timeout for ssh command, default is `10m`
|
||||
* `key` - content of ssh private key. ex raw content of ~/.ssh/id_rsa, remember include the BEGIN and END lines
|
||||
* `key_path` - path of ssh private key
|
||||
* `fingerprint` - fingerprint SHA256 of the host public key, default is to skip verification
|
||||
* `script` - execute commands
|
||||
* `script_stop` - stop script after first failure
|
||||
* `envs` - pass environment variable to shell script
|
||||
* `debug` - enable debug mode
|
||||
* `use_insecure_cipher` - include more ciphers with use_insecure_cipher (see [#56](https://github.com/appleboy/ssh-action/issues/56))
|
||||
* `cipher` - the allowed cipher algorithms. If unspecified then a sensible
|
||||
* `envs_format` - flexible configuration of environment value transfer. default is `export {NAME}={VALUE}`
|
||||
|
||||
SSH Proxy Setting:
|
||||
|
||||
* `proxy_host` - proxy host
|
||||
* `proxy_port` - proxy port, default is `22`
|
||||
* `proxy_username` - proxy username
|
||||
* `proxy_password` - proxy password
|
||||
* `proxy_passphrase` - the passphrase is usually to encrypt the private key
|
||||
* `proxy_timeout` - timeout for ssh to proxy host, default is `30s`
|
||||
* `proxy_key` - content of ssh proxy private key.
|
||||
* `proxy_key_path` - path of ssh proxy private key
|
||||
* `proxy_fingerprint` - fingerprint SHA256 of the proxy host public key, default is to skip verification
|
||||
* `proxy_use_insecure_cipher` - include more ciphers with use_insecure_cipher (see [#56](https://github.com/appleboy/ssh-action/issues/56))
|
||||
* `proxy_cipher` - the allowed cipher algorithms. If unspecified then a sensible
|
||||
| Input Parameter | Description | Default Value |
|
||||
|-------------------------|-----------------------------------------------------------------|---------------|
|
||||
| host | SSH host address | |
|
||||
| port | SSH port number | 22 |
|
||||
| passphrase | SSH key passphrase | |
|
||||
| username | SSH username | |
|
||||
| password | SSH password | |
|
||||
| sync | Enable synchronous execution if multiple hosts | false |
|
||||
| use_insecure_cipher | Include more ciphers with use_insecure_cipher | false |
|
||||
| cipher | Allowed cipher algorithms. If unspecified, a sensible default | |
|
||||
| timeout | Timeout duration for SSH to host | 30s |
|
||||
| command_timeout | Timeout duration for SSH command | 10m |
|
||||
| key | Content of SSH private key. e.g., raw content of ~/.ssh/id_rsa | |
|
||||
| key_path | Path of SSH private key | |
|
||||
| fingerprint | SHA256 fingerprint of the host public key | |
|
||||
| proxy_host | SSH proxy host | |
|
||||
| proxy_port | SSH proxy port | 22 |
|
||||
| proxy_username | SSH proxy username | |
|
||||
| proxy_password | SSH proxy password | |
|
||||
| proxy_passphrase | SSH proxy key passphrase | |
|
||||
| proxy_timeout | Timeout for SSH to proxy host | 30s |
|
||||
| proxy_key | Content of SSH proxy private key | |
|
||||
| proxy_key_path | Path of SSH proxy private key | |
|
||||
| proxy_fingerprint | SHA256 fingerprint of the proxy host public key | |
|
||||
| proxy_cipher | Allowed cipher algorithms for the proxy | |
|
||||
| proxy_use_insecure_cipher | Include more ciphers with use_insecure_cipher for the proxy | false |
|
||||
| script | Execute commands | |
|
||||
| script_stop | Stop script after first failure | false |
|
||||
| envs | Pass environment variables to shell script | |
|
||||
| envs_format | Flexible configuration of environment value transfer | |
|
||||
| debug | Enable debug mode | false |
|
||||
| allenvs | Pass all environment variables to shell script | false |
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -63,7 +63,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -164,7 +164,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -177,7 +177,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: executing remote ssh commands using ssh key
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -190,7 +190,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: multiple command
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -207,7 +207,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com,bar.com"
|
||||
|
@ -223,7 +223,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com:1234,bar.com:5678"
|
||||
|
@ -238,7 +238,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: "foo.com,bar.com"
|
||||
+ sync: true
|
||||
|
@ -254,7 +254,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: pass environment
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
+ env:
|
||||
+ FOO: "BAR"
|
||||
+ BAR: "FOO"
|
||||
|
@ -279,7 +279,7 @@ _Inside `env` object, you need to pass every environment variable as a string, p
|
|||
|
||||
```diff
|
||||
- name: stop script if command error
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -332,7 +332,7 @@ Host FooServer
|
|||
|
||||
```diff
|
||||
- name: ssh proxy command
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -355,7 +355,7 @@ It is not uncommon for files to leak from backups or decommissioned hardware, an
|
|||
|
||||
```diff
|
||||
- name: ssh key passphrase
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -381,7 +381,7 @@ Now you can adjust you config:
|
|||
|
||||
```diff
|
||||
- name: ssh key passphrase
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
|
|
@ -58,7 +58,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -157,7 +157,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: executing remote ssh commands using password
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -170,7 +170,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: executing remote ssh commands using ssh key
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -183,7 +183,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```yaml
|
||||
- name: multiple command
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -200,7 +200,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com,bar.com"
|
||||
|
@ -216,7 +216,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
- host: "foo.com"
|
||||
+ host: "foo.com:1234,bar.com:5678"
|
||||
|
@ -231,7 +231,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: multiple host
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: "foo.com,bar.com"
|
||||
+ sync: true
|
||||
|
@ -247,7 +247,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com"
|
|||
|
||||
```diff
|
||||
- name: pass environment
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
+ env:
|
||||
+ FOO: "BAR"
|
||||
+ BAR: "FOO"
|
||||
|
@ -272,7 +272,7 @@ _在 `env` 對象中,您需要將每個環境變量作為字符串傳遞,傳
|
|||
|
||||
```diff
|
||||
- name: stop script if command error
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -325,7 +325,7 @@ Host FooServer
|
|||
|
||||
```diff
|
||||
- name: ssh proxy command
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -346,7 +346,7 @@ Host FooServer
|
|||
|
||||
```diff
|
||||
- name: ssh key passphrase
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
@ -372,7 +372,7 @@ ssh example.com ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub | cut -d ' '
|
|||
|
||||
```diff
|
||||
- name: ssh key passphrase
|
||||
uses: appleboy/ssh-action@v0.1.10
|
||||
uses: appleboy/ssh-action@v1.0.1
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
|
|
69
action.yml
69
action.yml
|
@ -3,73 +3,70 @@ description: 'Executing remote ssh commands'
|
|||
author: 'Bo-Yi Wu'
|
||||
inputs:
|
||||
host:
|
||||
description: 'ssh host'
|
||||
description: 'SSH host address.'
|
||||
port:
|
||||
description: 'ssh port'
|
||||
default: 22
|
||||
description: 'SSH port number.'
|
||||
default: "22"
|
||||
passphrase:
|
||||
description: 'ssh key passphrase'
|
||||
description: 'Passphrase for the SSH key.'
|
||||
username:
|
||||
description: 'ssh username'
|
||||
description: 'SSH username.'
|
||||
password:
|
||||
description: 'ssh password'
|
||||
description: 'SSH password.'
|
||||
sync:
|
||||
description: 'synchronous execution if multiple hosts'
|
||||
default: false
|
||||
description: 'Enable synchronous execution if multiple hosts are involved.'
|
||||
use_insecure_cipher:
|
||||
description: 'include more ciphers with use_insecure_cipher'
|
||||
default: false
|
||||
description: 'Include more ciphers by using insecure ciphers.'
|
||||
cipher:
|
||||
description: 'the allowed cipher algorithms. If unspecified then a sensible'
|
||||
description: 'Allowed cipher algorithms. If unspecified, a sensible default is used.'
|
||||
timeout:
|
||||
description: 'timeout for ssh to host'
|
||||
description: 'Timeout duration for establishing SSH connection to the host.'
|
||||
default: "30s"
|
||||
command_timeout:
|
||||
description: 'timeout for ssh command'
|
||||
description: 'Timeout duration for SSH commands execution.'
|
||||
default: "10m"
|
||||
key:
|
||||
description: 'content of ssh private key. ex raw content of ~/.ssh/id_rsa'
|
||||
description: 'Content of the SSH private key. For example, the raw content of ~/.ssh/id_rsa.'
|
||||
key_path:
|
||||
description: 'path of ssh private key'
|
||||
description: 'Path to the SSH private key file.'
|
||||
fingerprint:
|
||||
description: 'sha256 fingerprint of the host public key'
|
||||
description: 'SHA256 fingerprint of the host public key.'
|
||||
proxy_host:
|
||||
description: 'ssh proxy host'
|
||||
description: 'SSH proxy host address.'
|
||||
proxy_port:
|
||||
description: 'ssh proxy port'
|
||||
default: 22
|
||||
description: 'SSH proxy port number.'
|
||||
default: "22"
|
||||
proxy_username:
|
||||
description: 'ssh proxy username'
|
||||
description: 'SSH proxy username.'
|
||||
proxy_password:
|
||||
description: 'ssh proxy password'
|
||||
description: 'SSH proxy password.'
|
||||
proxy_passphrase:
|
||||
description: 'ssh proxy key passphrase'
|
||||
description: 'SSH proxy key passphrase.'
|
||||
proxy_timeout:
|
||||
description: 'timeout for ssh to proxy host'
|
||||
description: 'Timeout duration for establishing SSH connection to the proxy host.'
|
||||
default: "30s"
|
||||
proxy_key:
|
||||
description: 'content of ssh proxy private key. ex raw content of ~/.ssh/id_rsa'
|
||||
description: 'Content of the SSH proxy private key. For example, the raw content of ~/.ssh/id_rsa.'
|
||||
proxy_key_path:
|
||||
description: 'path of ssh proxy private key'
|
||||
description: 'Path to the SSH proxy private key file.'
|
||||
proxy_fingerprint:
|
||||
description: 'sha256 fingerprint of the proxy host public key'
|
||||
description: 'SHA256 fingerprint of the proxy host public key.'
|
||||
proxy_cipher:
|
||||
description: 'the allowed cipher algorithms. If unspecified then a sensible'
|
||||
description: 'Allowed cipher algorithms for the proxy. If unspecified, a sensible default is used.'
|
||||
proxy_use_insecure_cipher:
|
||||
description: 'include more ciphers with use_insecure_cipher'
|
||||
default: false
|
||||
description: 'Include more ciphers for the proxy by using insecure ciphers.'
|
||||
script:
|
||||
description: 'execute commands'
|
||||
description: 'Commands to be executed.'
|
||||
script_stop:
|
||||
description: 'stop script after first failure'
|
||||
default: false
|
||||
description: 'Stop the script after the first failure.'
|
||||
envs:
|
||||
description: 'pass environment variable to shell script'
|
||||
description: 'Environment variables to be passed to the shell script.'
|
||||
envs_format:
|
||||
description: 'flexible configuration of environment value transfer'
|
||||
description: 'Flexible configuration for environment value transfer.'
|
||||
debug:
|
||||
description: 'enable debug mode'
|
||||
default: false
|
||||
description: 'Enable debug mode.'
|
||||
allenvs:
|
||||
description: 'pass all environment variable to shell script.'
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
|
|
Loading…
Reference in New Issue