mirror of
https://github.com/easingthemes/ssh-deploy.git
synced 2024-11-19 08:08:05 +08:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ae4970d4cf | ||
|
5894f5e290 | ||
|
c381b885db | ||
|
756a522533 | ||
|
45cee3db2e | ||
|
59827af83c | ||
|
adb1a2ce99 | ||
|
4d086346af | ||
|
056fb0fea7 | ||
|
d7e6989d58 | ||
|
0fb307eb41 | ||
|
a7b7e1e49d |
6
.github/workflows/e2e.yml
vendored
6
.github/workflows/e2e.yml
vendored
@@ -100,6 +100,12 @@ jobs:
|
||||
# Shared ENV Vars created in previous steps
|
||||
REMOTE_USER: ${{ 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
|
||||
|
||||
|
@@ -22,7 +22,7 @@ inputs:
|
||||
TARGET:
|
||||
description: "Target directory"
|
||||
required: false
|
||||
default: "/home/REMOTE_USER/"
|
||||
default: ""
|
||||
ARGS:
|
||||
description: "Arguments to pass to rsync"
|
||||
required: false
|
||||
|
2
dist/index.js
vendored
2
dist/index.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,3 +1,31 @@
|
||||
## [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)
|
||||
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@draganfilipovic/ssh-deploy",
|
||||
"version": "4.1.0",
|
||||
"version": "4.1.4",
|
||||
"description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.",
|
||||
"main": "dist/index.js",
|
||||
"files": [
|
||||
|
@@ -7,14 +7,10 @@ const inputNames = [
|
||||
'SCRIPT_BEFORE', 'SCRIPT_AFTER'];
|
||||
|
||||
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 = {
|
||||
source: '',
|
||||
target: `/home/${remoteUser}/`,
|
||||
exclude: '',
|
||||
args: '-rlgoDzvc -i',
|
||||
sshCmdArgs: '-o StrictHostKeyChecking=no',
|
||||
deployKeyName: `deploy_key_${remoteUser}_${Date.now()}`
|
||||
};
|
||||
|
||||
@@ -24,20 +20,19 @@ const inputs = {
|
||||
|
||||
inputNames.forEach((input) => {
|
||||
const inputName = snakeToCamel(input.toLowerCase());
|
||||
const inputVal = process.env[input] || process.env[`INPUT_${input}`];
|
||||
const validVal = inputVal === undefined ? defaultInputs[inputName] : inputVal;
|
||||
let extendedVal = validVal;
|
||||
const inputVal = process.env[input] || process.env[`INPUT_${input}`] || defaultInputs[inputName];
|
||||
let extendedVal = inputVal;
|
||||
// eslint-disable-next-line default-case
|
||||
switch (inputName) {
|
||||
case 'source':
|
||||
extendedVal = validVal.split(' ').map((src) => `${githubWorkspace}/${src}`);
|
||||
extendedVal = inputVal.split(' ').map((src) => `${githubWorkspace}/${src}`);
|
||||
break;
|
||||
case 'args':
|
||||
extendedVal = validVal.split(' ');
|
||||
extendedVal = inputVal.split(' ');
|
||||
break;
|
||||
case 'exclude':
|
||||
case 'sshCmdArgs':
|
||||
extendedVal = validVal.split(',').map((item) => item.trim());
|
||||
extendedVal = inputVal.split(',').map((item) => item.trim());
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -15,17 +15,20 @@ const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Prom
|
||||
const filename = `local_ssh_script-${label}.sh`;
|
||||
try {
|
||||
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}`);
|
||||
exec(
|
||||
`DEBIAN_FRONTEND=noninteractive ssh -p ${(remotePort || 22)} -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) => {
|
||||
if (err) {
|
||||
const message = `⚠️ [CMD] Remote script failed: ${err.message}`;
|
||||
console.warn(`${message} \n`, data, stderr);
|
||||
handleError(message, isRequired, reject);
|
||||
} else {
|
||||
console.log('✅ [CMD] Remote script executed. \n', data, stderr);
|
||||
resolve(data);
|
||||
const limited = data.substring(0, dataLimit);
|
||||
console.log('✅ [CMD] Remote script executed. \n', limited, stderr);
|
||||
resolve(limited);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@@ -19,7 +19,7 @@ const addSshKey = (content, deployKeyName) => {
|
||||
const { dir, filename } = getPrivateKeyPath(deployKeyName);
|
||||
writeToFile({ dir, filename: KNOWN_HOSTS, content: '' });
|
||||
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);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user