Giter Club home page Giter Club logo

sftp-deploy-action's Introduction

SFTP Deploy action

Use this action to deploy your files to server using SSH Private Key

使用此action部署你的项目到服务器上,仅支持密钥对连接 中文介绍链接:使用Github Action 部署项目到云服务器

1. Inputs

Name Required Default Description
username yes SSH username
server yes Remote host
port yes 22 Remote host port
ssh_private_key yes You can copy private key from your ssh_private_key.pem file, and save torepo/settings/secrets
local_path yes ./* 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 yes Remote path
sftp_only no If your port only accepts the sftp protocol, set this option to true. However, please note that when this option is set to true, the remote folder will not be created automatically.
args sftpArgs no other args yor want to use of sftp, E.g.-o ConnectTimeout=5
delete_remote_files no false Set true will delete all files in the remote path before upload.
password no SSH passsword,If a password is set, ssh_private_key is ignored. for @v1.2.4 and greater

Warning

Be careful when use delete_remote_files, This will remove all files in your remote path before uploading

Action Examples

on: [push]

jobs:
    deploy_job:
    runs-on: ubuntu-latest
    name: deploy
    steps:
        - name: Checkout
        uses: actions/checkout@v2
        - name: deploy file
        uses: wlixcc/[email protected]
        with:
            username: 'root'
            server: 'your server ip'
            ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} 
            local_path: './static/*'
            remote_path: '/var/www/app'
            sftpArgs: '-o ConnectTimeout=5'
on: [push]

jobs:
    deploy_job:
    runs-on: ubuntu-latest
    name: deploy
    steps:
        - name: Checkout
        uses: actions/checkout@v2
        - name: Deploy file
        uses: wlixcc/[email protected]
        with:
            username: ${{ secrets.FTP_USERNAME }}
            server: ${{ secrets.FTP_SERVER }}
            port: ${{ secrets.FTP_PORT }}
            local_path: './static/*'
            remote_path: '/var/www/app'
            sftp_only: true
            password: ${{ secrets.FTP_PASSWORD }}

If you use nginx, all you need to do is upload the static files to the server after the project is built

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: wlixcc/[email protected]
        with:
            username: 'root'
            server: '${{ secrets.SERVER_IP }}'
            ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
            local_path: './build/*'
            remote_path: '/var/www/react-app'
            sftpArgs: '-o ConnectTimeout=5'

2.Deploy Umi App Example (Ant Design Pro)

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: wlixcc/[email protected]
        with:
            username: 'root'
            server: '${{ secrets.SERVER_IP }}'
            ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
            local_path: './dist/*'
            remote_path: '/var/www/umiapp'
            sftpArgs: '-o ConnectTimeout=5'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.