Compare commits
	
		
			26 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					edc8ec9139 | ||
| 
						 | 
					167d6d7ff4 | ||
| 
						 | 
					ecd6a3623b | ||
| 
						 | 
					31b514c281 | ||
| 
						 | 
					5924b2b6d4 | ||
| 
						 | 
					a2fea1040d | ||
| 
						 | 
					8535291767 | ||
| 
						 | 
					faff4f4218 | ||
| 
						 | 
					ddd9176502 | ||
| 
						 | 
					326e14ddd1 | ||
| 
						 | 
					0329cffdaa | ||
| 
						 | 
					6df9245376 | ||
| 
						 | 
					4df1959b05 | ||
| 
						 | 
					1c43a9662a | ||
| 
						 | 
					2949c755a2 | ||
| 
						 | 
					aefa39daef | ||
| 
						 | 
					2305e4000a | ||
| 
						 | 
					c51573a06a | ||
| 
						 | 
					d068cd7f84 | ||
| 
						 | 
					8ba3cfe760 | ||
| 
						 | 
					1a6b426141 | ||
| 
						 | 
					8b3eebcc8d | ||
| 
						 | 
					861f2e0e7b | ||
| 
						 | 
					6971270956 | ||
| 
						 | 
					bac6c9e026 | ||
| 
						 | 
					b04405242e | 
							
								
								
									
										24
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -6,9 +6,11 @@ jobs:
 | 
				
			|||||||
    name: Build
 | 
					    name: Build
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@master
 | 
					    - name: checkout
 | 
				
			||||||
 | 
					      uses: actions/checkout@v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: copy file via ssh password
 | 
					    - name: copy file via ssh password
 | 
				
			||||||
      uses: appleboy/scp-action@master
 | 
					      uses: ./
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        host: ${{ secrets.HOST }}
 | 
					        host: ${{ secrets.HOST }}
 | 
				
			||||||
        username: ${{ secrets.USERNAME }}
 | 
					        username: ${{ secrets.USERNAME }}
 | 
				
			||||||
@@ -18,7 +20,7 @@ jobs:
 | 
				
			|||||||
        target: "test"
 | 
					        target: "test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: copy file via ssh key
 | 
					    - name: copy file via ssh key
 | 
				
			||||||
      uses: appleboy/scp-action@master
 | 
					      uses: ./
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        host: ${{ secrets.HOST }}
 | 
					        host: ${{ secrets.HOST }}
 | 
				
			||||||
        username: ${{ secrets.USERNAME }}
 | 
					        username: ${{ secrets.USERNAME }}
 | 
				
			||||||
@@ -28,7 +30,7 @@ jobs:
 | 
				
			|||||||
        target: "test"
 | 
					        target: "test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: remove the specified number of leading path elements
 | 
					    - name: remove the specified number of leading path elements
 | 
				
			||||||
      uses: appleboy/scp-action@master
 | 
					      uses: ./
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        host: ${{ secrets.HOST }}
 | 
					        host: ${{ secrets.HOST }}
 | 
				
			||||||
        username: ${{ secrets.USERNAME }}
 | 
					        username: ${{ secrets.USERNAME }}
 | 
				
			||||||
@@ -39,7 +41,7 @@ jobs:
 | 
				
			|||||||
        strip_components: 1
 | 
					        strip_components: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: ssh key with passphrase
 | 
					    - name: ssh key with passphrase
 | 
				
			||||||
      uses: appleboy/scp-action@master
 | 
					      uses: ./
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        host: ${{ secrets.HOST }}
 | 
					        host: ${{ secrets.HOST }}
 | 
				
			||||||
        username: ${{ secrets.USERNAME }}
 | 
					        username: ${{ secrets.USERNAME }}
 | 
				
			||||||
@@ -48,3 +50,15 @@ jobs:
 | 
				
			|||||||
        port: ${{ secrets.PORT }}
 | 
					        port: ${{ secrets.PORT }}
 | 
				
			||||||
        source: "tests/a.txt,tests/b.txt"
 | 
					        source: "tests/a.txt,tests/b.txt"
 | 
				
			||||||
        target: "test"
 | 
					        target: "test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: use insecure cipher
 | 
				
			||||||
 | 
					      uses: ./
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        host: ${{ secrets.HOST }}
 | 
				
			||||||
 | 
					        username: ${{ secrets.USERNAME }}
 | 
				
			||||||
 | 
					        key: ${{ secrets.SSH2 }}
 | 
				
			||||||
 | 
					        passphrase: ${{ secrets.PASSPHRASE }}
 | 
				
			||||||
 | 
					        port: ${{ secrets.PORT }}
 | 
				
			||||||
 | 
					        source: "tests/a.txt,tests/b.txt"
 | 
				
			||||||
 | 
					        target: "test"
 | 
				
			||||||
 | 
					        use_insecure_cipher: true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
FROM appleboy/drone-scp:1.5.5-linux-amd64
 | 
					FROM appleboy/drone-scp:1.6.2-linux-amd64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ADD entrypoint.sh /entrypoint.sh
 | 
					ADD entrypoint.sh /entrypoint.sh
 | 
				
			||||||
RUN chmod +x /entrypoint.sh
 | 
					RUN chmod +x /entrypoint.sh
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README.md
									
									
									
									
									
								
							@@ -6,6 +6,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[](https://github.com/appleboy/scp-action/actions)
 | 
					[](https://github.com/appleboy/scp-action/actions)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Important**: Only support **Linux** [docker](https://www.docker.com/) container.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
copy files and artifacts via SSH as blow.
 | 
					copy files and artifacts via SSH as blow.
 | 
				
			||||||
@@ -40,16 +42,18 @@ see the [action.yml](./action.yml) file for more detail imformation.
 | 
				
			|||||||
* username - scp username
 | 
					* username - scp username
 | 
				
			||||||
* password - scp password
 | 
					* password - scp password
 | 
				
			||||||
* passphrase - the passphrase is usually to encrypt the private key
 | 
					* passphrase - the passphrase is usually to encrypt the private key
 | 
				
			||||||
 | 
					* fingerprint - fingerprint SHA256 of the host public key, default is to skip verification
 | 
				
			||||||
* timeout - timeout for ssh to remote host, default is `30s`
 | 
					* timeout - timeout for ssh to remote host, default is `30s`
 | 
				
			||||||
* command_timeout - timeout for scp command, default is `10m`
 | 
					* command_timeout - timeout for scp command, default is `10m`
 | 
				
			||||||
* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa
 | 
					* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa
 | 
				
			||||||
* key_path - path of ssh private key
 | 
					* key_path - path of ssh private key
 | 
				
			||||||
* target - target path on the server
 | 
					* target - target path on the server
 | 
				
			||||||
* source - scp file list
 | 
					* source - scp file list
 | 
				
			||||||
* rm - remove target folder before upload data
 | 
					* rm - remove target folder before upload data, default is `false`
 | 
				
			||||||
* strip_components - remove the specified number of leading path elements.
 | 
					* strip_components - remove the specified number of leading path elements.
 | 
				
			||||||
* overwrite - use `--overwrite` flag with tar
 | 
					* overwrite - use `--overwrite` flag with tar
 | 
				
			||||||
* tar_tmp_path - temporary path for tar file on the dest host
 | 
					* tar_tmp_path - temporary path for tar file on the dest host
 | 
				
			||||||
 | 
					* use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#15](https://github.com/appleboy/scp-action/issues/15))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SSH Proxy Setting:
 | 
					SSH Proxy Setting:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -61,6 +65,8 @@ SSH Proxy Setting:
 | 
				
			|||||||
* proxy_timeout - timeout for ssh to proxy host, default is `30s`
 | 
					* proxy_timeout - timeout for ssh to proxy host, default is `30s`
 | 
				
			||||||
* proxy_key - content of ssh proxy private key.
 | 
					* proxy_key - content of ssh proxy private key.
 | 
				
			||||||
* proxy_key_path - path of ssh proxy private key
 | 
					* proxy_key_path - path of ssh proxy private key
 | 
				
			||||||
 | 
					* proxy_fingerprint - fingerprint SHA256 of the host public key, default is to skip verification
 | 
				
			||||||
 | 
					* proxy_use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#15](https://github.com/appleboy/scp-action/issues/15))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Example
 | 
					### Example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,12 +89,11 @@ Copy file via ssh key
 | 
				
			|||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- name: copy file via ssh key
 | 
					- name: copy file via ssh key
 | 
				
			||||||
  uses: appleboy/scp-action@master
 | 
					  uses: appleboy/scp-action@master
 | 
				
			||||||
  env:
 | 
					 | 
				
			||||||
    HOST: ${{ secrets.HOST }}
 | 
					 | 
				
			||||||
    USERNAME: ${{ secrets.USERNAME }}
 | 
					 | 
				
			||||||
    PORT: ${{ secrets.PORT }}
 | 
					 | 
				
			||||||
    KEY: ${{ secrets.KEY }}
 | 
					 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
 | 
					    host: ${{ secrets.HOST }}
 | 
				
			||||||
 | 
					    username: ${{ secrets.USERNAME }}
 | 
				
			||||||
 | 
					    port: ${{ secrets.PORT }}
 | 
				
			||||||
 | 
					    key: ${{ secrets.KEY }}
 | 
				
			||||||
    source: "tests/a.txt,tests/b.txt"
 | 
					    source: "tests/a.txt,tests/b.txt"
 | 
				
			||||||
    target: "test"
 | 
					    target: "test"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -98,12 +103,11 @@ Example configuration for ignore list:
 | 
				
			|||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- name: copy file via ssh key
 | 
					- name: copy file via ssh key
 | 
				
			||||||
  uses: appleboy/scp-action@master
 | 
					  uses: appleboy/scp-action@master
 | 
				
			||||||
  env:
 | 
					 | 
				
			||||||
    HOST: ${{ secrets.HOST }}
 | 
					 | 
				
			||||||
    USERNAME: ${{ secrets.USERNAME }}
 | 
					 | 
				
			||||||
    PORT: ${{ secrets.PORT }}
 | 
					 | 
				
			||||||
    KEY: ${{ secrets.KEY }}
 | 
					 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
 | 
					    host: ${{ secrets.HOST }}
 | 
				
			||||||
 | 
					    username: ${{ secrets.USERNAME }}
 | 
				
			||||||
 | 
					    port: ${{ secrets.PORT }}
 | 
				
			||||||
 | 
					    key: ${{ secrets.KEY }}
 | 
				
			||||||
    source: "tests/*.txt,!tests/a.txt"
 | 
					    source: "tests/*.txt,!tests/a.txt"
 | 
				
			||||||
    target: "test"
 | 
					    target: "test"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								action.yml
									
									
									
									
									
								
							@@ -23,12 +23,21 @@ inputs:
 | 
				
			|||||||
    description: 'path of ssh private key'
 | 
					    description: 'path of ssh private key'
 | 
				
			||||||
  passphrase:
 | 
					  passphrase:
 | 
				
			||||||
    description: 'ssh key passphrase'
 | 
					    description: 'ssh key passphrase'
 | 
				
			||||||
 | 
					  fingerprint:
 | 
				
			||||||
 | 
					    description: 'fingerprint SHA256 of the host public key, default is to skip verification'
 | 
				
			||||||
 | 
					  use_insecure_cipher:
 | 
				
			||||||
 | 
					    description: 'include more ciphers with use_insecure_cipher'
 | 
				
			||||||
 | 
					    default: false
 | 
				
			||||||
  target:
 | 
					  target:
 | 
				
			||||||
    description: 'target path on the server'
 | 
					    description: 'target path on the server'
 | 
				
			||||||
  source:
 | 
					  source:
 | 
				
			||||||
    description: 'scp file list'
 | 
					    description: 'scp file list'
 | 
				
			||||||
  rm:
 | 
					  rm:
 | 
				
			||||||
    description: 'remove target folder before upload data'
 | 
					    description: 'remove target folder before upload data'
 | 
				
			||||||
 | 
					    default: false
 | 
				
			||||||
 | 
					  debug:
 | 
				
			||||||
 | 
					    description: 'enable debug message'
 | 
				
			||||||
 | 
					    default: false
 | 
				
			||||||
  strip_components:
 | 
					  strip_components:
 | 
				
			||||||
    description: 'remove the specified number of leading path elements'
 | 
					    description: 'remove the specified number of leading path elements'
 | 
				
			||||||
    default: 0
 | 
					    default: 0
 | 
				
			||||||
@@ -55,6 +64,11 @@ inputs:
 | 
				
			|||||||
    description: 'content of ssh proxy private key. ex raw content of ~/.ssh/id_rsa'
 | 
					    description: 'content of ssh proxy private key. ex raw content of ~/.ssh/id_rsa'
 | 
				
			||||||
  proxy_key_path:
 | 
					  proxy_key_path:
 | 
				
			||||||
    description: 'path of ssh proxy private key'
 | 
					    description: 'path of ssh proxy private key'
 | 
				
			||||||
 | 
					  proxy_fingerprint:
 | 
				
			||||||
 | 
					    description: 'fingerprint SHA256 of the host public key, default is to skip verification'
 | 
				
			||||||
 | 
					  proxy_use_insecure_cipher:
 | 
				
			||||||
 | 
					    description: 'include more ciphers with use_insecure_cipher'
 | 
				
			||||||
 | 
					    default: false
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'docker'
 | 
					  using: 'docker'
 | 
				
			||||||
  image: 'Dockerfile'
 | 
					  image: 'Dockerfile'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
set -eu
 | 
					set -eu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export GITHUB="true"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ -n "$INPUT_STRIP_COMPONENTS" ] && export INPUT_STRIP_COMPONENTS=$((INPUT_STRIP_COMPONENTS + 0))
 | 
					[ -n "$INPUT_STRIP_COMPONENTS" ] && export INPUT_STRIP_COMPONENTS=$((INPUT_STRIP_COMPONENTS + 0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sh -c "/bin/drone-scp $*"
 | 
					sh -c "/bin/drone-scp $*"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user