15 Commits
v1.0 ... master

Author SHA1 Message Date
ChenjxJames
7dde96b18c docs: update README 2021-11-14 11:00:03 +08:00
ChenjxJames
9289a89a12 docs: update name 2021-11-14 10:52:58 +08:00
ChenjxJames
4404f4759c feat: remove ssh 2021-11-14 10:18:38 +08:00
wl
28d6168ebf 1. fix mkdir issue 2021-03-31 12:50:09 +08:00
wl
f19d10cf6b 1. fix mkdir issue 2021-03-31 12:06:37 +08:00
wl
cf8d9e5b50 Merge pull request #8 from stan-chen/fix-ssh-port
mkdir cannot connect non 22 port
2020-11-26 09:15:07 +08:00
StanleyChen
6ff9f12bc8 mkdir cannot connect non 22 port 2020-11-10 08:23:18 +08:00
wl
b2206dcb19 Merge pull request #4 from JulianGro/ssh_mkdir
Create directory if needed
2020-07-05 15:43:27 +08:00
wl
19ad014b34 Merge pull request #3 from JulianGro/readme
Fix first example in readme
2020-07-05 15:33:42 +08:00
Julian Groß
1f1ab26f78 remove "make sure dir exists" 2020-07-03 11:35:24 +02:00
Julian Groß
564673d595 disable StrictHostKeyChecking 2020-07-03 11:28:33 +02:00
Julian Groß
7fd32bff94 make directory when needed 2020-07-03 11:17:29 +02:00
motofckr9k
610ec6e1c9 Fix first example in readme 2020-07-03 03:36:27 +02:00
william
f1b3556b75 1. update readme 2020-02-18 22:57:55 +08:00
william
6b5c2a4271 1. update readme 2020-02-18 10:09:16 +08:00
6 changed files with 101 additions and 29 deletions

101
README.md
View File

@@ -1,42 +1,44 @@
# SFTP Deploy action
> Use this action to deploy your files to server using `SSH Private Key`
> 使用此`action`部署你的项目到服务器上,`仅支持密钥对连接`
> [使用Github Action 部署项目到云服务器](https://zhuanlan.zhihu.com/p/107545396)
## Inputs
### `username`
> **Required** sftp username.
**Required** sftp username.
### `server`
> **Required** sftp server address.
**Required** sftp server address.
### `port`
> sftp srever port , default `22`.
sftp srever port , default `22`
### `ssh_private_key`
> **Required** you can copy private_key from your `ssh_private_key.pem file`, keep format, and save at`repo/settings/secrets`
**Required** you can copy private_key from your `ssh_private_key.pem file`, keep format, and save at`repo/settings/secrets`
![secret](./resource/secret.jpg)
### `local_path`
> **Required** `local_path` of you project, if you want put single file:use path like `./myfile`, if you want put directory: use path like `./static/*`, it will put all files under `static` directory. Default to `./*`(will put all files in your repo).
**Required** `local_path` of you project, if you want put single file:use path like `./myfile`, if you want put directory: use path like `./static/*`, it will put all files under `static` directory. Default to `./*`(will put all files in your repo).
### `remote_path`
> **Required** remote_path
**Required** remote_path
### `args`
> args of sftp cmd, E.g.`-o ConnectTimeout=5`
args of sftp cmd, E.g.`-o ConnectTimeout=5`
## Example usage
## Action Example
```yml
on: [push]
jobs:
@@ -47,11 +49,82 @@
- name: Checkout
uses: actions/checkout@v2
- name: deploy file
uses: ./ # Uses an action in the root directory
uses: ChenjxJames/SFTP-Deploy-Action@v1.3.2
with:
username: 'root'
server: 'your server ip'
private_key: ${{ secrets.SSH_PRIVATE_KEY }}
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
local_path: './static/*'
remote_path: '/var/www/app' #make sure dir exist
remote_path: '/var/www/app'
args: '-o ConnectTimeout=5'
```
## 1. [Deploy React App Example](https://github.com/wlixcc/React-Deploy)
> If you use nginx, all you need to do is upload the static files to the server after the project is built
```yml
on: [push]
jobs:
deploy_job:
runs-on: ubuntu-latest
name: build&deploy
steps:
# To use this repository's private action, you must check out the repository
- name: Checkout
uses: actions/checkout@v2
- name: Install Dependencies
run: yarn
- name: Build
run: yarn build
- name: deploy file to server
uses: ChenjxJames/SFTP-Deploy-Action@v1.3.2
with:
username: 'root'
server: '${{ secrets.SERVER_IP }}'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
local_path: './build/*'
remote_path: '/var/www/react-app'
args: '-o ConnectTimeout=5'
```
![run](./resource/reactExample.jpg)
## 2.Deploy Umi App Example (Ant Design Pro)
```yml
name: continuous deployment
on: [push]
jobs:
deploy_job:
runs-on: ubuntu-latest
name: build&deploy
steps:
# To use this repository's private action, you must check out the repository
- name: Checkout
uses: actions/checkout@v2
- name: Install umi
run: yarn global add umi
- name: Install Dependencies
run: yarn
- name: Build
run: yarn build
- name: deploy file to server
uses: ChenjxJames/SFTP-Deploy-Action@v1.3.2
with:
username: 'root'
server: '${{ secrets.SERVER_IP }}'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
local_path: './dist/*'
remote_path: '/var/www/umiapp'
args: '-o ConnectTimeout=5'
```
![run](./resource/umiExample.jpg)

View File

@@ -1,5 +1,5 @@
# action.yml
name: 'SFTP Deploy'
name: 'SFTP Deploy No SSH'
description: 'Deploy file to your server use sftp & ssh private key'
inputs:
username:

View File

@@ -13,7 +13,6 @@ printf "%s" "$4" >$TEMP_SSH_PRIVATE_KEY_FILE
chmod 600 $TEMP_SSH_PRIVATE_KEY_FILE
echo 'sftp start'
# create a temporary file containing sftp commands
printf "%s" "put -r $5 $6" >$TEMP_SFTP_FILE
#-o StrictHostKeyChecking=no avoid Host key verification failed.

BIN
resource/reactExample.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
resource/secret.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
resource/umiExample.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB