Compare commits

..

58 Commits

Author SHA1 Message Date
Dragan Filipovic
98025d680e fix: rebuild and update readme 2023-02-21 23:11:54 +01:00
Dragan Filipović
88cc5ade97 Merge pull request #123 from sdelfi/fix/update-dist
chore: build dist
2023-02-21 23:06:19 +01:00
Stanislav Salnikov
ad7eefb5ae chore: build dist 2023-02-21 23:03:40 +01:00
github-actions
54dca654be chore(release): 4.1.7 [skip ci]
## [4.1.7](https://github.com/easingthemes/ssh-deploy/compare/v4.1.6...v4.1.7) (2023-02-21)

### Bug Fixes

* [#120](https://github.com/easingthemes/ssh-deploy/issues/120) check undefined data ([2fbb060](2fbb06015d))
2023-02-21 21:36:50 +00:00
Dragan Filipović
b0ee052eb0 Merge pull request #122 from easingthemes/bugfix/#120-inputs-string-bug
fix: #120 check undefined data
2023-02-21 22:36:10 +01:00
Dragan Filipovic
2fbb06015d fix: #120 check undefined data 2023-02-21 22:35:05 +01:00
github-actions
51b2009841 chore(release): 4.1.6 [skip ci]
## [4.1.6](https://github.com/easingthemes/ssh-deploy/compare/v4.1.5...v4.1.6) (2023-02-21)

### Bug Fixes

* [#118](https://github.com/easingthemes/ssh-deploy/issues/118) check undefined default values rebuild ([54f8b6c](54f8b6c60b))
2023-02-21 17:02:47 +00:00
Dragan Filipović
530a3691f2 Merge pull request #121 from easingthemes/bugfix/#118-default-value-check
Bugfix/#118 default value check
2023-02-21 18:02:04 +01:00
Dragan Filipovic
509caf1bb9 Merge branch 'main' into bugfix/#118-default-value-check 2023-02-21 18:01:00 +01:00
Dragan Filipovic
54f8b6c60b fix: #118 check undefined default values rebuild 2023-02-21 18:00:23 +01:00
github-actions
d9d134f8e5 chore(release): 4.1.5 [skip ci]
## [4.1.5](https://github.com/easingthemes/ssh-deploy/compare/v4.1.4...v4.1.5) (2023-02-21)

### Bug Fixes

* [#118](https://github.com/easingthemes/ssh-deploy/issues/118) check undefined default values ([f0c02fb](f0c02fb2a5))
2023-02-21 16:12:23 +00:00
Dragan Filipović
e7b2312bc9 Merge pull request #119 from easingthemes/bugfix/#118-default-value-check
fix: #118 check undefined default values
2023-02-21 17:11:53 +01:00
Dragan Filipovic
f0c02fb2a5 fix: #118 check undefined default values 2023-02-21 17:10:24 +01:00
github-actions
ae4970d4cf chore(release): 4.1.4 [skip ci]
## [4.1.4](https://github.com/easingthemes/ssh-deploy/compare/v4.1.3...v4.1.4) (2023-02-21)

### Bug Fixes

* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script input ([5894f5e](5894f5e290))
2023-02-21 16:03:56 +00:00
Dragan Filipovic
5894f5e290 fix: #113 limit ssh script input 2023-02-21 17:03:16 +01:00
github-actions
c381b885db chore(release): 4.1.3 [skip ci]
## [4.1.3](https://github.com/easingthemes/ssh-deploy/compare/v4.1.2...v4.1.3) (2023-02-21)

### Bug Fixes

* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script output - rebuild ([756a522](756a522533))
2023-02-21 15:56:09 +00:00
Dragan Filipovic
756a522533 fix: #113 limit ssh script output - rebuild 2023-02-21 16:55:32 +01:00
github-actions
45cee3db2e chore(release): 4.1.2 [skip ci]
## [4.1.2](https://github.com/easingthemes/ssh-deploy/compare/v4.1.1...v4.1.2) (2023-02-21)

### Bug Fixes

* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script output ([59827af](59827af83c))
2023-02-21 15:54:41 +00:00
Dragan Filipovic
59827af83c fix: #113 limit ssh script output 2023-02-21 16:53:56 +01:00
github-actions
adb1a2ce99 chore(release): 4.1.1 [skip ci]
## [4.1.1](https://github.com/easingthemes/ssh-deploy/compare/v4.1.0...v4.1.1) (2023-02-21)

### Bug Fixes

* fix default TARGET ([4d08634](4d086346af))
2023-02-21 14:37:18 +00:00
Dragan Filipovic
4d086346af fix: fix default TARGET 2023-02-21 15:36:29 +01:00
Dragan Filipovic
056fb0fea7 [e2e] use main for latest tests 2023-02-21 14:50:41 +01:00
Dragan Filipovic
d7e6989d58 [e2e] rebuild: log default values 2023-02-21 14:46:17 +01:00
Dragan Filipovic
0fb307eb41 [e2e] log default values 2023-02-21 14:43:52 +01:00
Dragan Filipovic
a7b7e1e49d [e2e] add default values test 2023-02-21 14:38:27 +01:00
github-actions
e995cb4b7b chore(release): 4.1.0 [skip ci]
# [4.1.0](https://github.com/easingthemes/ssh-deploy/compare/v4.0.5...v4.1.0) (2023-02-19)

### Features

* add ssh port from VARs, fix package-lock ([808b002](808b0020d4))
2023-02-19 17:30:20 +00:00
Dragan Filipovic
808b0020d4 feat: add ssh port from VARs, fix package-lock 2023-02-19 18:29:35 +01:00
Dragan Filipović
d5e1f75798 Merge pull request #116 from Cascade-Lab/sb-fix-host-scan-port
Use custom port for host scan
2023-02-19 18:25:20 +01:00
Sebastian Blesgen
a1e01b2fad Use custom port for host scan 2023-02-10 18:55:53 +01:00
github-actions
164a3e861e chore(release): 4.0.5 [skip ci]
## [4.0.5](https://github.com/easingthemes/ssh-deploy/compare/v4.0.4...v4.0.5) (2023-01-06)

### Bug Fixes

* fix manual release action ([245b7a9](245b7a9d2f))
2023-01-06 20:51:37 +00:00
Dragan Filipović
426f06d922 Merge pull request #106 from easingthemes/manual-release
fix: fix manual release action
2023-01-06 21:50:57 +01:00
Dragan Filipovic
245b7a9d2f fix: fix manual release action 2023-01-06 21:50:25 +01:00
Dragan Filipović
4c8eee72bd Merge pull request #105 from npiasecki/fix-remote-port
Add remote port
2023-01-05 20:21:22 +01:00
Nicholas Piasecki
0a1df91f97 Add remote port 2023-01-04 12:18:09 -05:00
github-actions
845b7f6f1f chore(release): 4.0.4 [skip ci]
## [4.0.4](https://github.com/easingthemes/ssh-deploy/compare/v4.0.3...v4.0.4) (2023-01-03)

### Bug Fixes

* update sub dependencies ([2a32c8d](2a32c8dcde))
2023-01-03 22:41:11 +00:00
Dragan Filipovic
2a32c8dcde fix: update sub dependencies 2023-01-03 23:40:24 +01:00
github-actions
0b63b85565 chore(release): 4.0.3 [skip ci]
## [4.0.3](https://github.com/easingthemes/ssh-deploy/compare/v4.0.2...v4.0.3) (2023-01-03)

### Bug Fixes

* update v3 e2e test ([450bf42](450bf423f3))
2023-01-03 22:16:09 +00:00
Dragan Filipovic
450bf423f3 fix: update v3 e2e test 2023-01-03 23:15:21 +01:00
github-actions
affc58a8b7 chore(release): 4.0.2 [skip ci]
## [4.0.2](https://github.com/easingthemes/ssh-deploy/compare/v4.0.1...v4.0.2) (2023-01-03)

### Bug Fixes

* add githubWorkspace as default source root ([3ef66d0](3ef66d0be9))
2023-01-03 22:08:02 +00:00
github-actions
8c12d45929 patch: Trigger Manual Release 2023-01-03 22:07:41 +00:00
Dragan Filipović
85987f4567 Merge pull request #101 from easingthemes/bugfix/src-dir
fix: add githubWorkspace as default source root
2023-01-03 23:05:33 +01:00
Dragan Filipovic
3ef66d0be9 fix: add githubWorkspace as default source root 2023-01-03 23:02:41 +01:00
github-actions
79363f2b74 chore(release): 4.0.1 [skip ci]
## [4.0.1](https://github.com/easingthemes/ssh-deploy/compare/v4.0.0...v4.0.1) (2023-01-03)

### Bug Fixes

* fix default source if empty ([9f191f4](9f191f4263))
2023-01-03 20:57:09 +00:00
Dragan Filipović
7c21074882 Merge pull request #99 from easingthemes/bugfix/fix-empty-src
fix: fix default source if empty
2023-01-03 21:56:33 +01:00
Dragan Filipovic
9f191f4263 fix: fix default source if empty 2023-01-03 21:55:45 +01:00
Dragan Filipovic
006cf3021d Add v3 e2e 2023-01-03 19:29:28 +01:00
github-actions
8be4106fce chore(release): 4.0.0 [skip ci]
# [4.0.0](https://github.com/easingthemes/ssh-deploy/compare/v3.4.3...v4.0.0) (2023-01-03)

### Bug Fixes

* rebuild ([2169399](2169399fef))

### Performance Improvements

* update default rsync options ([2be7efb](2be7efb376))

### BREAKING CHANGES

* Default rsync options updated to speed up default deployments.
from `rltgoDzvO` to `-rlgoDzvc -i`
2023-01-03 08:34:27 +00:00
Dragan Filipović
7c9b40539e Merge pull request #96 from easingthemes/feature/default-rsync-options
feat: update default rsync options
2023-01-03 09:33:49 +01:00
Dragan Filipovic
2169399fef fix: rebuild 2023-01-03 09:25:16 +01:00
Dragan Filipovic
2be7efb376 perf: update default rsync options
BREAKING CHANGE: Default rsync options updated to speed up default deployments.
from `rltgoDzvO` to `-rlgoDzvc -i`
2023-01-03 09:21:19 +01:00
Dragan Filipovic
e6e41a57ec Merge branch 'temp3' 2023-01-03 03:39:52 +01:00
github-actions
c8d57ec8b4 chore(release): 3.4.3 [skip ci]
## [3.4.3](https://github.com/easingthemes/ssh-deploy/compare/v3.4.2...v3.4.3) (2023-01-03)

### Bug Fixes

* move e2e tests typo branch name ([6d3554b](6d3554b01e))
2023-01-03 03:38:43 +01:00
github-actions
8bf58fb293 chore(release): 3.4.3 [skip ci]
## [3.4.3](https://github.com/easingthemes/ssh-deploy/compare/v3.4.2...v3.4.3) (2023-01-03)

### Bug Fixes

* move e2e tests typo branch name ([6d3554b](6d3554b01e))
2023-01-03 02:29:31 +00:00
Dragan Filipovic
6d3554b01e fix: move e2e tests typo branch name 2023-01-03 03:28:39 +01:00
github-actions
8ad0b68b03 chore(release): 3.4.2 [skip ci]
## [3.4.2](https://github.com/easingthemes/ssh-deploy/compare/v3.4.1...v3.4.2) (2023-01-03)

### Bug Fixes

* Update changelog ([765f5ff](765f5ffd31))
2023-01-03 02:26:00 +00:00
Dragan Filipovic
765f5ffd31 fix: Update changelog 2023-01-03 03:25:23 +01:00
github-actions
bd84b4a501 chore(release): 3.4.1 [skip ci]
## [3.4.1](https://github.com/easingthemes/ssh-deploy/compare/v3.4.0...v3.4.1) (2023-01-03)

### Bug Fixes

* move e2e tests to main branch ([0069fae](0069faea9f))
2023-01-03 02:13:05 +00:00
Dragan Filipovic
0069faea9f fix: move e2e tests to main branch 2023-01-03 03:11:47 +01:00
13 changed files with 309 additions and 91 deletions

View File

@@ -6,7 +6,7 @@ on:
ARGS: ARGS:
description: 'ARGS' description: 'ARGS'
required: true required: true
default: '-rltgoDzvO --delete --chmod=ugo+rwX --progress' default: '-rlgoDzvc -i --delete --chmod=ugo+rwX --progress'
EXCLUDE: EXCLUDE:
description: 'EXCLUDE' description: 'EXCLUDE'
required: true required: true
@@ -85,7 +85,7 @@ jobs:
# ---------------------------------------------------------------- # ----------------------------------------------------------------
- name: e2e Test ssh-deploy action - name: e2e Test ssh-deploy action
uses: easingthemes/ssh-deploy@feature/multi-src uses: easingthemes/ssh-deploy@main
env: env:
# ENV Vars created in previous steps: # ENV Vars created in previous steps:
# SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY # SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY

View File

@@ -2,7 +2,7 @@ name: e2e Test
on: on:
push: push:
branches: [ 'feature/multi-src' ] branches: [ 'main' ]
env: env:
TEST_HOST_DOCKER: ./test TEST_HOST_DOCKER: ./test
@@ -74,7 +74,7 @@ jobs:
- name: set shared ENV variables for multi target deployment - name: set shared ENV variables for multi target deployment
run: | run: |
echo "ARGS=-rltgoDzvOR --delete --chmod=ugo+rwX --progress" >> $GITHUB_ENV echo "ARGS=-rlgoDzvcR -i --delete --chmod=ugo+rwX --progress" >> $GITHUB_ENV
echo "SSH_CMD_ARGS=-o StrictHostKeyChecking=no, -o UserKnownHostsFile=/dev/null" >> $GITHUB_ENV echo "SSH_CMD_ARGS=-o StrictHostKeyChecking=no, -o UserKnownHostsFile=/dev/null" >> $GITHUB_ENV
echo "SOURCE=test_project/ test_project2/" >> $GITHUB_ENV echo "SOURCE=test_project/ test_project2/" >> $GITHUB_ENV
echo "EXCLUDE=skip_dir/, /node_modules/" >> $GITHUB_ENV echo "EXCLUDE=skip_dir/, /node_modules/" >> $GITHUB_ENV
@@ -88,15 +88,92 @@ jobs:
echo "EOF" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV
- name: e2e Test ssh-deploy action - Target 1 - name: e2e Test ssh-deploy action - Target 1
uses: easingthemes/ssh-deploy@feature/multi-src uses: easingthemes/ssh-deploy@main
env: env:
# Shared ENV Vars created in previous steps # Shared ENV Vars created in previous steps
REMOTE_USER: ${{ env.TEST_USER }} REMOTE_USER: ${{ env.TEST_USER }}
TARGET: /var/www/html/${{ env.TEST_USER }} TARGET: /var/www/html/${{ env.TEST_USER }}
- name: e2e Test ssh-deploy action - Target 2 - name: e2e Test ssh-deploy action - Target 2
uses: easingthemes/ssh-deploy@feature/multi-src uses: easingthemes/ssh-deploy@main
env: env:
# Shared ENV Vars created in previous steps # Shared ENV Vars created in previous steps
REMOTE_USER: ${{ env.TEST_USER2 }} REMOTE_USER: ${{ env.TEST_USER2 }}
TARGET: /var/www/html/${{ env.TEST_USER2 }} TARGET: /var/www/html/${{ env.TEST_USER2 }}
- name: e2e Test ssh-deploy action - Default values
uses: easingthemes/ssh-deploy@main
env:
# Shared ENV Vars created in previous steps
REMOTE_USER: ${{ env.TEST_USER }}
e2e-v3:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
# : ---------------------------------------------------------------
# : START E2E Test Specific - steps
# : ----------------------------------------------------------------
- name: E2E Test Specific - Clean up old test files
run: |
docker stop ssh-host-container || true && docker rm ssh-host-container || true
- name: E2E Test Specific - Create ssh keys
run: |
echo $HOME
ls -la $HOME
ssh-keygen -m PEM -t rsa -b 4096 -f "$HOME/.ssh/id_rsa" -N ""
eval `ssh-agent -s`
ssh-add "$HOME/.ssh/id_rsa"
ssh-add -l
echo "SSH_PRIVATE_KEY<<EOF" >> $GITHUB_ENV
cat $HOME/.ssh/id_rsa >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: E2E Test Specific - Build Host Server Image
working-directory: ${{ env.TEST_HOST_DOCKER }}
run: |
docker build \
-t ssh-host-image . \
--build-arg SSH_PUB_KEY="$(cat $HOME/.ssh/id_rsa.pub)"
docker run -d -p 8822:22 --name=ssh-host-container ssh-host-image
docker exec ssh-host-container sh -c "hostname --ip-address" > ip.txt
echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
cat ip.txt >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
shell: bash
- name: E2E Test Specific - Create project file
run: |
mkdir test_project2 && cd "$_"
truncate -s 5MB info2.txt
cd ../
mkdir test_project && cd "$_"
touch index.html
date +"%Y-%m-%d %H:%M:%S,%3N" >> index.html
truncate -s 50MB image.svg
truncate -s 5MB info.txt
truncate -s 500MB big_file.txt
mkdir skip_dir && cd "$_"
truncate -s 5MB text_in_skip_dir.txt
cd ../
cat index.html
echo "test_project:" && ls -lR
echo "skip_dir:" && ls -lR skip_dir
# ----------------------------------------------------------------
# END E2E Test Specific - steps
# ----------------------------------------------------------------
- name: e2e Test ssh-deploy action - Target 1
uses: easingthemes/ssh-deploy@v3
env:
# Shared ENV Vars created in previous steps
REMOTE_USER: ${{ env.TEST_USER }}
TARGET: /var/www/html/${{ env.TEST_USER }}
SOURCE: test_project/
EXCLUDE: skip_dir/, /node_modules/
ARGS: -rlgoDzvcO

View File

@@ -6,11 +6,10 @@ on:
description: 'Version' description: 'Version'
type: choice type: choice
required: true required: true
default: patch default: fix
options: options:
- patch - fix
- minor - feat
- major
dryRun: dryRun:
description: 'DryRun' description: 'DryRun'
type: boolean type: boolean
@@ -64,7 +63,7 @@ jobs:
run: npm run build --if-present run: npm run build --if-present
- name: Run Tests - name: Run Tests
run: npm test --if-present run: npm test --if-present
- name: Publish npm package - name: Create a release - ${{ github.event.inputs.version }}
uses: cycjimmy/semantic-release-action@v3 uses: cycjimmy/semantic-release-action@v3
with: with:
dry_run: ${{ github.event.inputs.dryRun == 'true' }} dry_run: ${{ github.event.inputs.dryRun == 'true' }}

View File

@@ -41,7 +41,7 @@ eg: myusername
eg: '59184' eg: '59184'
##### 5. `ARGS` (optional, default '-rltgoDzvO') ##### 5. `ARGS` (optional, default '-rlgoDzvc -i')
For any initial/required rsync flags, eg: `-avzr --delete` For any initial/required rsync flags, eg: `-avzr --delete`
@@ -62,6 +62,8 @@ path to exclude separated by `,`, ie: `/dist/, /node_modules/`
Script to run on host machine before rsync. Single line or multiline commands. Script to run on host machine before rsync. Single line or multiline commands.
Execution is preformed by storing commands in `.sh` file and executing it via `.bash` over `ssh` Execution is preformed by storing commands in `.sh` file and executing it via `.bash` over `ssh`
If you have issues with `ssh` connection, use this var, eg `SCRIPT_BEFORE: ls`.
This will force `known_hosts` update, adding your host via `ssh-keyscan`.
##### 10. `SCRIPT_AFTER` (optional, default '') ##### 10. `SCRIPT_AFTER` (optional, default '')
@@ -83,7 +85,7 @@ or use the latest version from a branch, eg: ssh-deploy@main
uses: easingthemes/ssh-deploy@main uses: easingthemes/ssh-deploy@main
env: env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO" ARGS: "-rlgoDzvc -i"
SOURCE: "dist/" SOURCE: "dist/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }} REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }} REMOTE_USER: ${{ secrets.REMOTE_USER }}
@@ -111,11 +113,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v3
- name: Install Node.js - name: Install Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: '10.x' node-version: '16.x'
- name: Install npm dependencies - name: Install npm dependencies
run: npm install run: npm install
- name: Run build task - name: Run build task
@@ -124,7 +126,7 @@ jobs:
uses: easingthemes/ssh-deploy@main uses: easingthemes/ssh-deploy@main
env: env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete" ARGS: "-rlgoDzvc -i --delete"
SOURCE: "dist/" SOURCE: "dist/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }} REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }} REMOTE_USER: ${{ secrets.REMOTE_USER }}
@@ -147,6 +149,8 @@ I've added e2e test for this action.
Real example is executed on every PR merge to `main`. Real example is executed on every PR merge to `main`.
Check actions tab for example. Check actions tab for example.
When opening an issue, please add example of your step with env vars. You can add dummy values.
More info for SSH keys: https://www.ssh.com/ssh/public-key-authentication More info for SSH keys: https://www.ssh.com/ssh/public-key-authentication
## Tips ## Tips
@@ -156,6 +160,7 @@ For complex use cases, use `ARGS` and `SSH_CMD_ARGS` to fully configure `rsync`
- If you need to use multiple steps, eg multi targets deployment, save shared ENV variables in `>> $GITHUB_ENV`. - If you need to use multiple steps, eg multi targets deployment, save shared ENV variables in `>> $GITHUB_ENV`.
Check .github/workflows/e2e.yml for an example Check .github/workflows/e2e.yml for an example
- For multi sources, use -R ARG to manipulate folders structure. - For multi sources, use -R ARG to manipulate folders structure.
- Great post about `rsync` options specific to usage of this action: https://logansnotes.com/2020/gh-action-site-deploy/
## Disclaimer ## Disclaimer

View File

@@ -22,11 +22,11 @@ inputs:
TARGET: TARGET:
description: "Target directory" description: "Target directory"
required: false required: false
default: "/home/REMOTE_USER/" default: ""
ARGS: ARGS:
description: "Arguments to pass to rsync" description: "Arguments to pass to rsync"
required: false required: false
default: "-rltgoDzvO" default: "-rlgoDzvc -i"
SSH_CMD_ARGS: SSH_CMD_ARGS:
description: "An array of ssh arguments, they must be prefixed with -o and separated by a comma, for example: -o SomeArgument=no, -o SomeOtherArgument=5 " description: "An array of ssh arguments, they must be prefixed with -o and separated by a comma, for example: -o SomeArgument=no, -o SomeOtherArgument=5 "
required: false required: false

2
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,14 +1,150 @@
# [3.4.0](https://github.com/easingthemes/ssh-deploy/compare/v3.3.4...v3.4.0) (2023-01-03) ## [4.1.7](https://github.com/easingthemes/ssh-deploy/compare/v4.1.6...v4.1.7) (2023-02-21)
### Bug Fixes ### Bug Fixes
* yaml step name ([5c13615](https://github.com/easingthemes/ssh-deploy/commit/5c13615d4b7b0bda47f622ac5f4444484d8bcdb4)) * [#120](https://github.com/easingthemes/ssh-deploy/issues/120) check undefined data ([2fbb060](https://github.com/easingthemes/ssh-deploy/commit/2fbb06015d1a6ffd32e0100aaf1a1a46949e990e))
## [4.1.6](https://github.com/easingthemes/ssh-deploy/compare/v4.1.5...v4.1.6) (2023-02-21)
### Bug Fixes
* [#118](https://github.com/easingthemes/ssh-deploy/issues/118) check undefined default values rebuild ([54f8b6c](https://github.com/easingthemes/ssh-deploy/commit/54f8b6c60b8f2f926d5ed9538557e5521a905d87))
## [4.1.5](https://github.com/easingthemes/ssh-deploy/compare/v4.1.4...v4.1.5) (2023-02-21)
### Bug Fixes
* [#118](https://github.com/easingthemes/ssh-deploy/issues/118) check undefined default values ([f0c02fb](https://github.com/easingthemes/ssh-deploy/commit/f0c02fb2a5b3b69bb91004dd49d409eb6adfe7cd))
## [4.1.4](https://github.com/easingthemes/ssh-deploy/compare/v4.1.3...v4.1.4) (2023-02-21)
### Bug Fixes
* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script input ([5894f5e](https://github.com/easingthemes/ssh-deploy/commit/5894f5e29008feccaf42787330ec8f49f3ad50b0))
## [4.1.3](https://github.com/easingthemes/ssh-deploy/compare/v4.1.2...v4.1.3) (2023-02-21)
### Bug Fixes
* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script output - rebuild ([756a522](https://github.com/easingthemes/ssh-deploy/commit/756a522533d2206203b5d13b5aa11c88b3313784))
## [4.1.2](https://github.com/easingthemes/ssh-deploy/compare/v4.1.1...v4.1.2) (2023-02-21)
### Bug Fixes
* [#113](https://github.com/easingthemes/ssh-deploy/issues/113) limit ssh script output ([59827af](https://github.com/easingthemes/ssh-deploy/commit/59827af83c934996efda72f9fbd1fcd0bb9ccaac))
## [4.1.1](https://github.com/easingthemes/ssh-deploy/compare/v4.1.0...v4.1.1) (2023-02-21)
### Bug Fixes
* fix default TARGET ([4d08634](https://github.com/easingthemes/ssh-deploy/commit/4d086346af62ac5d57fa37ee6bb46f8de8ad48c3))
# [4.1.0](https://github.com/easingthemes/ssh-deploy/compare/v4.0.5...v4.1.0) (2023-02-19)
### Features ### Features
* add ssh port from VARs, fix package-lock ([808b002](https://github.com/easingthemes/ssh-deploy/commit/808b0020d44b7c25ef1c13b3979ffdab4f503236))
## [4.0.5](https://github.com/easingthemes/ssh-deploy/compare/v4.0.4...v4.0.5) (2023-01-06)
### Bug Fixes
* fix manual release action ([245b7a9](https://github.com/easingthemes/ssh-deploy/commit/245b7a9d2fe5272ee34608f86a612d643694c23b))
## [4.0.4](https://github.com/easingthemes/ssh-deploy/compare/v4.0.3...v4.0.4) (2023-01-03)
### Bug Fixes
* update sub dependencies ([2a32c8d](https://github.com/easingthemes/ssh-deploy/commit/2a32c8dcde2d64394a3577decdd9c902f37a30f8))
## [4.0.3](https://github.com/easingthemes/ssh-deploy/compare/v4.0.2...v4.0.3) (2023-01-03)
### Bug Fixes
* update v3 e2e test ([450bf42](https://github.com/easingthemes/ssh-deploy/commit/450bf423f388777bde052ad7b5bc24eca392434d))
## [4.0.2](https://github.com/easingthemes/ssh-deploy/compare/v4.0.1...v4.0.2) (2023-01-03)
### Bug Fixes
* add githubWorkspace as default source root ([3ef66d0](https://github.com/easingthemes/ssh-deploy/commit/3ef66d0be999ee45434505e8bedea4f8b5b5a909))
## [4.0.1](https://github.com/easingthemes/ssh-deploy/compare/v4.0.0...v4.0.1) (2023-01-03)
### Bug Fixes
* fix default source if empty ([9f191f4](https://github.com/easingthemes/ssh-deploy/commit/9f191f42633c4a0f66054f0fc229c9e30a08f00c))
# [4.0.0](https://github.com/easingthemes/ssh-deploy/compare/v3.4.3...v4.0.0) (2023-01-03)
### Bug Fixes
* rebuild ([2169399](https://github.com/easingthemes/ssh-deploy/commit/2169399fef9a60a2fea1ab03cce4ec8c2371e5c2))
### Performance Improvements
* update default rsync options ([2be7efb](https://github.com/easingthemes/ssh-deploy/commit/2be7efb376866327c1d1209f51eb43f34f07b354))
### BREAKING CHANGES
* Default rsync options updated to speed up default deployments.
from `rltgoDzvO` to `-rlgoDzvc -i`
## [3.4.3](https://github.com/easingthemes/ssh-deploy/compare/v3.4.2...v3.4.3) (2023-01-03)
### Bug Fixes
* move e2e tests typo branch name ([6d3554b](https://github.com/easingthemes/ssh-deploy/commit/6d3554b01e9a05de9a9d2b30274bee411a4986ed))
## [3.4.2](https://github.com/easingthemes/ssh-deploy/compare/v3.4.1...v3.4.2) (2023-01-03)
### Bug Fixes
* Update changelog ([765f5ff](https://github.com/easingthemes/ssh-deploy/commit/765f5ffd3153c76442521c61c04656cafc182731))
## [3.4.1](https://github.com/easingthemes/ssh-deploy/compare/v3.4.0...v3.4.1) (2023-01-03)
### Bug Fixes
* move e2e tests to main branch ([0069fae](https://github.com/easingthemes/ssh-deploy/commit/0069faea9ff3ea3cdd095b0f2663c9e2bcd97480))
# [3.4.0](https://github.com/easingthemes/ssh-deploy/compare/v3.3.4...v3.4.0) (2023-01-03)
**Full Changelog**: https://github.com/easingthemes/ssh-deploy/compare/v3.1.0...v3.4.1
### Features
* Add SSH remote script support - before and after rsync ([2cd8a82](https://github.com/easingthemes/ssh-deploy/commit/2cd8a820e22135b7002fbe6a47cf33f99e2d337b))
* Add multi source and multi target support ([73a65ec](https://github.com/easingthemes/ssh-deploy/commit/73a65ec97c5046a53f6b4c40823be5fd3826ede0)) * Add multi source and multi target support ([73a65ec](https://github.com/easingthemes/ssh-deploy/commit/73a65ec97c5046a53f6b4c40823be5fd3826ede0))
* Add SSH_CMD_ARGS support ([51a0063](https://github.com/easingthemes/ssh-deploy/commit/51a00631e2b91983fb610ca2157a673b9ae03c95))
* Add manual inputs for e2e test ([8f71595](https://github.com/easingthemes/ssh-deploy/commit/8f715957ab9283ab2934dd1e5be9d78f2eaf3fae))
### Bug Fixes
* Add visible Rsync CMD for debugging ([91b6d28](https://github.com/easingthemes/ssh-deploy/commit/91b6d280aee6a7ae666a11426fb356406f4a25a5))
* log buffer from rsync stdout ([8e19e0d](https://github.com/easingthemes/ssh-deploy/commit/8e19e0d6bc9b1c332925ce0268ad64b50728fae5))
* fix e2e yaml step name ([5c13615](https://github.com/easingthemes/ssh-deploy/commit/5c13615d4b7b0bda47f622ac5f4444484d8bcdb4))
## [3.3.4](https://github.com/easingthemes/ssh-deploy/compare/v3.3.3...v3.3.4) (2023-01-02) ## [3.3.4](https://github.com/easingthemes/ssh-deploy/compare/v3.3.3...v3.3.4) (2023-01-02)

106
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@draganfilipovic/ssh-deploy", "name": "@draganfilipovic/ssh-deploy",
"version": "3.1.0", "version": "4.1.7",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@draganfilipovic/ssh-deploy", "name": "@draganfilipovic/ssh-deploy",
"version": "3.1.0", "version": "4.1.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"rsyncwrapper": "^3.0.1" "rsyncwrapper": "^3.0.1"
@@ -19,9 +19,9 @@
} }
}, },
"node_modules/@eslint/eslintrc": { "node_modules/@eslint/eslintrc": {
"version": "1.4.0", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
"integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"ajv": "^6.12.4", "ajv": "^6.12.4",
@@ -326,21 +326,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/cross-spawn/node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.4", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -470,12 +455,12 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.30.0", "version": "8.31.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
"integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint/eslintrc": "^1.4.0", "@eslint/eslintrc": "^1.4.1",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -770,9 +755,9 @@
"dev": true "dev": true
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.14.0", "version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
"integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@@ -1327,9 +1312,9 @@
"dev": true "dev": true
}, },
"node_modules/json5": { "node_modules/json5": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"minimist": "^1.2.0" "minimist": "^1.2.0"
@@ -1931,6 +1916,21 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/which-boxed-primitive": { "node_modules/which-boxed-primitive": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
@@ -1977,9 +1977,9 @@
}, },
"dependencies": { "dependencies": {
"@eslint/eslintrc": { "@eslint/eslintrc": {
"version": "1.4.0", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
"integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "^6.12.4", "ajv": "^6.12.4",
@@ -2203,17 +2203,6 @@
"path-key": "^3.1.0", "path-key": "^3.1.0",
"shebang-command": "^2.0.0", "shebang-command": "^2.0.0",
"which": "^2.0.1" "which": "^2.0.1"
},
"dependencies": {
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
}
}
} }
}, },
"debug": { "debug": {
@@ -2310,12 +2299,12 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
"version": "8.30.0", "version": "8.31.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
"integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint/eslintrc": "^1.4.0", "@eslint/eslintrc": "^1.4.1",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -2549,9 +2538,9 @@
"dev": true "dev": true
}, },
"fastq": { "fastq": {
"version": "1.14.0", "version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
"integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
"dev": true, "dev": true,
"requires": { "requires": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@@ -2943,9 +2932,9 @@
"dev": true "dev": true
}, },
"json5": { "json5": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true, "dev": true,
"requires": { "requires": {
"minimist": "^1.2.0" "minimist": "^1.2.0"
@@ -3359,6 +3348,15 @@
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
}, },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
}
},
"which-boxed-primitive": { "which-boxed-primitive": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@draganfilipovic/ssh-deploy", "name": "@draganfilipovic/ssh-deploy",
"version": "3.4.0", "version": "4.1.7",
"description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.", "description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.",
"main": "dist/index.js", "main": "dist/index.js",
"files": [ "files": [

View File

@@ -20,7 +20,7 @@ const run = async () => {
const { path: privateKeyPath } = getPrivateKeyPath(deployKeyName); const { path: privateKeyPath } = getPrivateKeyPath(deployKeyName);
// Update known hosts if ssh command is present to avoid prompt // Update known hosts if ssh command is present to avoid prompt
if (scriptBefore || scriptAfter) { if (scriptBefore || scriptAfter) {
updateKnownHosts(remoteHost); updateKnownHosts(remoteHost, remotePort);
} }
// Check Script before // Check Script before
if (scriptBefore) { if (scriptBefore) {

View File

@@ -7,13 +7,13 @@ const inputNames = [
'SCRIPT_BEFORE', 'SCRIPT_AFTER']; 'SCRIPT_BEFORE', 'SCRIPT_AFTER'];
const githubWorkspace = process.env.GITHUB_WORKSPACE; const githubWorkspace = process.env.GITHUB_WORKSPACE;
const remoteUser = process.env.REMOTE_USER; const remoteUser = process.env.REMOTE_USER || process.env.INPUT_REMOTE_USER;
const defaultInputs = { const defaultInputs = {
source: './', source: '',
target: `/home/${remoteUser}/`, target: `/home/${remoteUser}/`,
exclude: '', exclude: '',
args: '-rltgoDzvO', args: '-rlgoDzvc -i',
sshCmdArgs: '-o StrictHostKeyChecking=no', sshCmdArgs: '-o StrictHostKeyChecking=no',
deployKeyName: `deploy_key_${remoteUser}_${Date.now()}` deployKeyName: `deploy_key_${remoteUser}_${Date.now()}`
}; };
@@ -24,13 +24,13 @@ const inputs = {
inputNames.forEach((input) => { inputNames.forEach((input) => {
const inputName = snakeToCamel(input.toLowerCase()); const inputName = snakeToCamel(input.toLowerCase());
const inputVal = process.env[input] || process.env[`INPUT_${input}`]; const inputVal = process.env[input] || process.env[`INPUT_${input}`] || defaultInputs[inputName];
const validVal = inputVal === undefined ? defaultInputs[inputName] : inputVal; const validVal = inputVal === undefined ? defaultInputs[inputName] : inputVal;
let extendedVal = validVal; let extendedVal = validVal;
// eslint-disable-next-line default-case // eslint-disable-next-line default-case
switch (inputName) { switch (inputName) {
case 'source': case 'source':
extendedVal = validVal.indexOf(' ') > -1 ? validVal.split(' ') : validVal; extendedVal = validVal.split(' ').map((src) => `${githubWorkspace}/${src}`);
break; break;
case 'args': case 'args':
extendedVal = validVal.split(' '); extendedVal = validVal.split(' ');

View File

@@ -1,5 +1,5 @@
const { exec } = require('child_process'); const { exec } = require('child_process');
const { sshServer, githubWorkspace } = require('./inputs'); const { sshServer, githubWorkspace, remotePort } = require('./inputs');
const { writeToFile } = require('./helpers'); const { writeToFile } = require('./helpers');
const handleError = (message, isRequired, callback) => { const handleError = (message, isRequired, callback) => {
@@ -15,17 +15,20 @@ const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Prom
const filename = `local_ssh_script-${label}.sh`; const filename = `local_ssh_script-${label}.sh`;
try { try {
writeToFile({ dir: githubWorkspace, filename, content }); writeToFile({ dir: githubWorkspace, filename, content });
const dataLimit = 10000;
const rsyncStdout = (process.env.RSYNC_STDOUT || '').substring(0, dataLimit);
console.log(`Executing remote script: ssh -i ${privateKeyPath} ${sshServer}`); console.log(`Executing remote script: ssh -i ${privateKeyPath} ${sshServer}`);
exec( exec(
`DEBIAN_FRONTEND=noninteractive ssh -i ${privateKeyPath} -o StrictHostKeyChecking=no ${sshServer} 'RSYNC_STDOUT="${process.env.RSYNC_STDOUT}" bash -s' < ${filename}`, `DEBIAN_FRONTEND=noninteractive ssh -p ${(remotePort || 22)} -i ${privateKeyPath} -o StrictHostKeyChecking=no ${sshServer} 'RSYNC_STDOUT="${rsyncStdout}" bash -s' < ${filename}`,
(err, data, stderr) => { (err, data = '', stderr = '') => {
if (err) { if (err) {
const message = `⚠️ [CMD] Remote script failed: ${err.message}`; const message = `⚠️ [CMD] Remote script failed: ${err.message}`;
console.warn(`${message} \n`, data, stderr); console.warn(`${message} \n`, data, stderr);
handleError(message, isRequired, reject); handleError(message, isRequired, reject);
} else { } else {
console.log('✅ [CMD] Remote script executed. \n', data, stderr); const limited = data.substring(0, dataLimit);
resolve(data); console.log('✅ [CMD] Remote script executed. \n', limited, stderr);
resolve(limited);
} }
} }
); );

View File

@@ -19,15 +19,15 @@ const addSshKey = (content, deployKeyName) => {
const { dir, filename } = getPrivateKeyPath(deployKeyName); const { dir, filename } = getPrivateKeyPath(deployKeyName);
writeToFile({ dir, filename: KNOWN_HOSTS, content: '' }); writeToFile({ dir, filename: KNOWN_HOSTS, content: '' });
console.log('✅ [SSH] known_hosts file ensured', dir); console.log('✅ [SSH] known_hosts file ensured', dir);
writeToFile({ dir, filename, content, isRequired: true, mode: '0400' }); writeToFile({ dir, filename, content: `${content}\r\n`, isRequired: true, mode: '0400' });
console.log('✅ [SSH] key added to `.ssh` dir ', dir, filename); console.log('✅ [SSH] key added to `.ssh` dir ', dir, filename);
}; };
const updateKnownHosts = (host) => { const updateKnownHosts = (host, remotePort) => {
const { knownHostsPath } = getPrivateKeyPath(); const { knownHostsPath } = getPrivateKeyPath();
console.log('[SSH] Adding host to `known_hosts` ....', host, knownHostsPath); console.log('[SSH] Adding host to `known_hosts` ....', host, knownHostsPath);
try { try {
execSync(`ssh-keyscan -H ${host} >> ${knownHostsPath}`, { execSync(`ssh-keyscan -p ${(remotePort || 22)} -H ${host} >> ${knownHostsPath}`, {
stdio: 'inherit' stdio: 'inherit'
}); });
} catch (error) { } catch (error) {