You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
e506e72e83
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> |
5 years ago | |
---|---|---|
.github/workflows | 5 years ago | |
images | 6 years ago | |
tests | 6 years ago | |
Dockerfile | 5 years ago | |
LICENSE | 6 years ago | |
README.md | 5 years ago | |
action.yml | 5 years ago | |
entrypoint.sh | 5 years ago |
README.md
🚀 SCP for GitHub Actions
GitHub Action for copying files and artifacts via SSH.
Usage
copy files and artifacts via SSH as blow.
- name: copy file via ssh password
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
source: "tests/a.txt,tests/b.txt"
target: "test"
Input variables
see the 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
- strip_components - remove the specified number of leading path elements.
Example
Copy file via ssh password
- 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"
Copy file via ssh key
- 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"
Example configuration for ignore list:
- 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"
Example configuration for multiple server
- 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"
remove the specified number of leading path elements
- 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:
foobar
└── tests
├── a.txt
└── b.txt
new target structure:
foobar
├── a.txt
└── b.txt