mirror of
				https://github.com/easingthemes/ssh-deploy.git
				synced 2025-10-30 23:30:09 +08:00 
			
		
		
		
	add optional REMOTE_PORT env to configuration
				
					
				
			This commit is contained in:
		
							parent
							
								
									a3d2df0501
								
							
						
					
					
						commit
						0d77a6681b
					
				| @ -24,6 +24,10 @@ eg: mydomain.com | ||||
| 
 | ||||
| eg: myusername | ||||
| 
 | ||||
| 3. `REMOTE_PORT` (optional, default '22') | ||||
| 
 | ||||
| eg: '59184' | ||||
| 
 | ||||
| 2. `ARGS` (optional, default '-rltgoDzvO') | ||||
| 
 | ||||
| For any initial/required rsync flags, eg: `-avzr --delete` | ||||
|  | ||||
							
								
								
									
										33
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								action.yml
									
									
									
									
									
								
							| @ -1,28 +1,31 @@ | ||||
| name: 'ssh deploy' | ||||
| description: 'NodeJS action for FAST deployment with rsync/ssh' | ||||
| author: 'easingthemes' | ||||
| name: "ssh deploy" | ||||
| description: "NodeJS action for FAST deployment with rsync/ssh" | ||||
| author: "easingthemes" | ||||
| inputs: | ||||
|   SSH_PRIVATE_KEY: # Private Key | ||||
|     description: 'Private Key' | ||||
|     description: "Private Key" | ||||
|     required: true | ||||
|   REMOTE_HOST: | ||||
|     description: 'Remote host' | ||||
|     description: "Remote host" | ||||
|     required: true | ||||
|   REMOTE_USER: | ||||
|     description: 'Remote user' | ||||
|     description: "Remote user" | ||||
|     required: true | ||||
|   REMOTE_PORT: | ||||
|     description: "Remote port" | ||||
|     default: "22" | ||||
|   SOURCE: | ||||
|     description: 'Source directory' | ||||
|     default: '' | ||||
|     description: "Source directory" | ||||
|     default: "" | ||||
|   TARGET: | ||||
|     description: 'Target directory' | ||||
|     default: '/home/REMOTE_USER/' | ||||
|     description: "Target directory" | ||||
|     default: "/home/REMOTE_USER/" | ||||
| outputs: | ||||
|   status: | ||||
|     description: 'Status' | ||||
|     description: "Status" | ||||
| runs: | ||||
|   using: 'node12' | ||||
|   main: 'dist/index.js' | ||||
|   using: "node12" | ||||
|   main: "dist/index.js" | ||||
| branding: | ||||
|   color: 'green' | ||||
|   icon: 'truck' | ||||
|   color: "green" | ||||
|   icon: "truck" | ||||
|  | ||||
							
								
								
									
										12
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -480,16 +480,16 @@ const commandExists = __webpack_require__(677); | ||||
| const nodeCmd = __webpack_require__(428); | ||||
| const nodeRsync = __webpack_require__(250); | ||||
| 
 | ||||
| const { REMOTE_HOST, REMOTE_USER, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, SOURCE, TARGET, ARGS, GITHUB_WORKSPACE, HOME } = process.env; | ||||
| const { REMOTE_HOST, REMOTE_USER, REMOTE_PORT, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, SOURCE, TARGET, ARGS, GITHUB_WORKSPACE, HOME } = process.env; | ||||
| console.log('GITHUB_WORKSPACE', GITHUB_WORKSPACE); | ||||
| 
 | ||||
| const sshDeploy = (() => { | ||||
|     const rsync = ({ privateKey, src, dest, args }) => { | ||||
|     const rsync = ({ privateKey, port, src, dest, args }) => { | ||||
|         console.log(`Starting Rsync Action: ${src} to ${dest}`); | ||||
| 
 | ||||
|         try { | ||||
|             // RSYNC COMMAND
 | ||||
|             nodeRsync({ src, dest, args, privateKey, ssh: true, sshCmdArgs: ['-o StrictHostKeyChecking=no'], recursive: true }, (error, stdout, stderr, cmd) => { | ||||
|             nodeRsync({ src, dest, args, privateKey, ssh: true, port, sshCmdArgs: ['-o StrictHostKeyChecking=no'], recursive: true }, (error, stdout, stderr, cmd) => { | ||||
|                 if (error) { | ||||
|                     console.error('⚠️ Rsync error', error.message); | ||||
|                     process.abort(); | ||||
| @ -509,14 +509,15 @@ const sshDeploy = (() => { | ||||
|                       args, | ||||
|                       host = 'localhost', | ||||
|                       username, | ||||
|                       privateKeyContent | ||||
|                       privateKeyContent, | ||||
|                       port | ||||
|                   }) => { | ||||
|         validateRsync(() => { | ||||
|             const privateKey = addSshKey(privateKeyContent, DEPLOY_KEY_NAME ||'deploy_key'); | ||||
| 
 | ||||
|             const remoteDest = username + '@' + host + ':' + dest; | ||||
| 
 | ||||
|             rsync({ privateKey, src, dest: remoteDest, args }); | ||||
|             rsync({ privateKey, port, src, dest: remoteDest, args }); | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
| @ -616,6 +617,7 @@ const run = () => { | ||||
|         dest: TARGET || '/home/' + REMOTE_USER + '/', | ||||
|         args: [ARGS] || false, | ||||
|         host: REMOTE_HOST, | ||||
|         port: REMOTE_PORT || '22', | ||||
|         username: REMOTE_USER, | ||||
|         privateKeyContent: SSH_PRIVATE_KEY, | ||||
|     }); | ||||
|  | ||||
							
								
								
									
										2
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "ssh-deploy", | ||||
|   "version": "2.0.0", | ||||
|   "version": "2.1.0", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "ssh-deploy", | ||||
|   "version": "2.0.7", | ||||
|   "version": "2.1.0", | ||||
|   "description": "This GitHub Action deploys specific directory from `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh.", | ||||
|   "main": "src/index.js", | ||||
|   "dependencies": { | ||||
|  | ||||
							
								
								
									
										12
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/index.js
									
									
									
									
									
								
							| @ -5,16 +5,16 @@ const commandExists = require('command-exists'); | ||||
| const nodeCmd = require('node-cmd'); | ||||
| const nodeRsync = require('rsyncwrapper'); | ||||
| 
 | ||||
| const { REMOTE_HOST, REMOTE_USER, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, SOURCE, TARGET, ARGS, GITHUB_WORKSPACE, HOME } = process.env; | ||||
| const { REMOTE_HOST, REMOTE_USER, REMOTE_PORT, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, SOURCE, TARGET, ARGS, GITHUB_WORKSPACE, HOME } = process.env; | ||||
| console.log('GITHUB_WORKSPACE', GITHUB_WORKSPACE); | ||||
| 
 | ||||
| const sshDeploy = (() => { | ||||
|     const rsync = ({ privateKey, src, dest, args }) => { | ||||
|     const rsync = ({ privateKey, port, src, dest, args }) => { | ||||
|         console.log(`Starting Rsync Action: ${src} to ${dest}`); | ||||
| 
 | ||||
|         try { | ||||
|             // RSYNC COMMAND
 | ||||
|             nodeRsync({ src, dest, args, privateKey, ssh: true, sshCmdArgs: ['-o StrictHostKeyChecking=no'], recursive: true }, (error, stdout, stderr, cmd) => { | ||||
|             nodeRsync({ src, dest, args, privateKey, ssh: true, port, sshCmdArgs: ['-o StrictHostKeyChecking=no'], recursive: true }, (error, stdout, stderr, cmd) => { | ||||
|                 if (error) { | ||||
|                     console.error('⚠️ Rsync error', error.message); | ||||
|                     process.abort(); | ||||
| @ -34,14 +34,15 @@ const sshDeploy = (() => { | ||||
|                       args, | ||||
|                       host = 'localhost', | ||||
|                       username, | ||||
|                       privateKeyContent | ||||
|                       privateKeyContent, | ||||
|                       port | ||||
|                   }) => { | ||||
|         validateRsync(() => { | ||||
|             const privateKey = addSshKey(privateKeyContent, DEPLOY_KEY_NAME ||'deploy_key'); | ||||
| 
 | ||||
|             const remoteDest = username + '@' + host + ':' + dest; | ||||
| 
 | ||||
|             rsync({ privateKey, src, dest: remoteDest, args }); | ||||
|             rsync({ privateKey, port, src, dest: remoteDest, args }); | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
| @ -141,6 +142,7 @@ const run = () => { | ||||
|         dest: TARGET || '/home/' + REMOTE_USER + '/', | ||||
|         args: [ARGS] || ['-rltgoDzvO'], | ||||
|         host: REMOTE_HOST, | ||||
|         port: REMOTE_PORT || '22', | ||||
|         username: REMOTE_USER, | ||||
|         privateKeyContent: SSH_PRIVATE_KEY, | ||||
|     }); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Filip Malinowski
						Filip Malinowski