action-scp/README.md

134 lines
2.9 KiB
Markdown
Raw Normal View History

2019-05-11 09:01:31 +00:00
# 🚀 SCP for GitHub Actions
[GitHub Action](https://developer.github.com/actions/) for copying files and artifacts via SSH.
2019-09-28 04:13:03 +00:00
![ssh key](./images/copy-multiple-file.png)
2019-05-11 09:01:31 +00:00
2019-09-28 04:17:08 +00:00
[![Actions Status](https://github.com/appleboy/scp-action/workflows/scp%20files/badge.svg)](https://github.com/appleboy/scp-action/actions)
2019-05-11 09:01:31 +00:00
## Usage
copy files and artifacts via SSH as blow.
2019-09-28 04:13:03 +00:00
```yaml
- name: copy file via ssh password
uses: appleboy/scp-action@master
with:
2019-09-28 04:16:21 +00:00
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
2019-09-28 04:13:03 +00:00
source: "tests/a.txt,tests/b.txt"
2019-09-28 04:16:21 +00:00
target: "test"
2019-05-11 09:01:31 +00:00
```
2019-09-28 04:16:21 +00:00
## Input variables
2019-05-11 11:49:38 +00:00
2019-09-28 04:16:21 +00:00
see the [action.yml](./action.yml) file for more detail imformation.
* host - scp remote host
* port - scp remote port
* username - scp username
* password - scp password
* timeout - timeout for ssh to remote host
* command_timeout - timeout for scp command
* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa
* key_path - path of ssh private key
* target - target path on the server
* source - scp file list
* rm - remove target folder before upload data
2019-09-28 04:26:40 +00:00
* strip_components - remove the specified number of leading path elements.
2019-05-11 11:49:38 +00:00
2019-05-11 09:01:31 +00:00
### Example
2019-05-11 11:49:38 +00:00
Copy file via ssh password
2019-09-28 04:13:03 +00:00
```yaml
- name: copy file via ssh password
uses: appleboy/scp-action@master
with:
host: example.com
username: foo
password: bar
port: 22
source: "tests/a.txt,tests/b.txt"
target: "test"
2019-05-11 09:01:31 +00:00
```
2019-05-11 11:49:38 +00:00
Copy file via ssh key
2019-09-28 04:13:03 +00:00
```yaml
- name: copy file via ssh key
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.KEY }}
with:
source: "tests/a.txt,tests/b.txt"
target: "test"
2019-05-11 11:49:38 +00:00
```
Example configuration for ignore list:
2019-09-28 04:13:03 +00:00
```yaml
- name: copy file via ssh key
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.KEY }}
with:
source: "tests/*.txt,!tests/a.txt"
target: "test"
2019-05-11 11:49:38 +00:00
```
2019-05-12 02:25:37 +00:00
Example configuration for multiple server
```diff
2019-09-28 04:13:03 +00:00
- name: copy file via ssh password
uses: appleboy/scp-action@master
with:
- host: "example.com"
+ host: "foo.com,bar.com"
username: foo
password: bar
port: 22
source: "tests/a.txt,tests/b.txt"
target: "test"
2019-05-12 02:25:37 +00:00
```
2019-09-28 04:26:40 +00:00
remove the specified number of leading path elements
```yaml
- name: remove the specified number of leading path elements
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
source: "tests/a.txt,tests/b.txt"
target: "foobar"
strip_components: 1
```
old target structure:
```sh
foobar
└── tests
├── a.txt
└── b.txt
```
new target structure:
```sh
foobar
├── a.txt
└── b.txt
```