Compare commits

..

7 Commits

Author SHA1 Message Date
Dragan Filipovic
a3d2df0501 [version] Add author 2019-10-03 01:17:24 +02:00
Dragan Filipovic
7d63f7f134 [version] Description update 2019-10-03 01:07:28 +02:00
Dragan Filipovic
5fdc019220 [version] version bump 2019-10-03 00:52:55 +02:00
Dragan Filipovic
177ffc3a2a [version] Readme update 2019-10-03 00:51:32 +02:00
Dragan Filipovic
b5d54bf446 [action] fix node version 2019-10-03 00:24:52 +02:00
Dragan Filipovic
a20c19a8d1 [version] Readme update 2019-10-03 00:17:19 +02:00
Dragan Filipovic
4bf88310d4 [engine] use NodeJS instead of Docker 2019-10-02 23:58:26 +02:00
3 changed files with 51 additions and 35 deletions

View File

@@ -1,6 +1,10 @@
# ssh deployments # ssh deployments
This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh. Deploy code with rsync over ssh, using NodeJS.
NodeJS version is more than a minute `faster` than simple Docker version.
This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh, using NodeJS.
This action would usually follow a build/test action which leaves deployable code in `GITHUB_WORKSPACE`, eg `dist`; This action would usually follow a build/test action which leaves deployable code in `GITHUB_WORKSPACE`, eg `dist`;
@@ -8,30 +12,45 @@ This action would usually follow a build/test action which leaves deployable cod
Pass configuration with `env` vars Pass configuration with `env` vars
1. `DEPLOY_KEY` 1. `SSH_PRIVATE_KEY` [required]
This should be the private key part of an ssh key pair. The public key part should be added to the authorized_keys file on the server that receives the deployment. This should be the private key part of an ssh key pair. The public key part should be added to the authorized_keys file on the server that receives the deployment.
2. `ARGS` 2. `REMOTE_HOST` [required]
eg: mydomain.com
3. `REMOTE_USER` [required]
eg: myusername
2. `ARGS` (optional, default '-rltgoDzvO')
For any initial/required rsync flags, eg: `-avzr --delete` For any initial/required rsync flags, eg: `-avzr --delete`
3. `SOURCE` 3. `SOURCE` (optional, default '')
The source directory, path relative to `$GITHUB_WORKSPACE` root, eg: `dist`
4. `TARGET` The source directory, path relative to `$GITHUB_WORKSPACE` root, eg: `dist/`
The target directory, in the format`[USER]@[HOST]:[PATH]`
4. `TARGET` (optional, default '/home/REMOTE_USER/')
The target directory
# Usage
``` ```
- name: Deploy to Staging server - name: Deploy to Staging server
uses: easingthemes/ssh-deploy@v1.0.0 uses: easingthemes/ssh-deploy@v2.0.2
env: env:
DEPLOY_KEY: ${{ secrets.SERVER_SSH_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
ARGS: "-rltgoDzvO --delete" ARGS: "-rltgoDzvO"
SOURCE: "dist" SOURCE: "dist/"
TARGET: ${{ secrets.SERVER_STAGING }} REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_TARGET }}
``` ```
# Example usage # Example usage in workflow
``` ```
name: Node CI name: Node CI
@@ -43,29 +62,25 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }} - name: Install Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: ${{ matrix.node-version }} node-version: '10.x'
- name: Install npm dependencies - name: Install npm dependencies
run: | run: npm install
npm install
- name: Run build task - name: Run build task
run: | run: npm run build --if-present
npm run build --if-present - name: Deploy to Server
- name: Deploy to Staging server uses: easingthemes/ssh-deploy@v2.0.2
uses: easingthemes/ssh-deploy@v1.0.0
env: env:
DEPLOY_KEY: ${{ secrets.SERVER_SSH_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
ARGS: "-rltgoDzvO --delete" ARGS: "-rltgoDzvO --delete"
SOURCE: "dist" SOURCE: "dist/"
TARGET: ${{ secrets.SERVER_STAGING }} REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_TARGET }}
``` ```
## Disclaimer ## Disclaimer

View File

@@ -1,5 +1,6 @@
name: 'ssh deploy' name: 'ssh deploy'
description: 'For deploying code over ssh' description: 'NodeJS action for FAST deployment with rsync/ssh'
author: 'easingthemes'
inputs: inputs:
SSH_PRIVATE_KEY: # Private Key SSH_PRIVATE_KEY: # Private Key
description: 'Private Key' description: 'Private Key'
@@ -20,7 +21,7 @@ outputs:
status: status:
description: 'Status' description: 'Status'
runs: runs:
using: 'node10' using: 'node12'
main: 'dist/index.js' main: 'dist/index.js'
branding: branding:
color: 'green' color: 'green'

View File

@@ -1,6 +1,6 @@
{ {
"name": "ssh-deploy", "name": "ssh-deploy",
"version": "2.0.0", "version": "2.0.7",
"description": "This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh.", "description": "This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh.",
"main": "src/index.js", "main": "src/index.js",
"dependencies": { "dependencies": {