mirror of
				https://github.com/easingthemes/ssh-deploy.git
				synced 2025-10-30 23:30:09 +08:00 
			
		
		
		
	Added exclude parameter
This commit is contained in:
		
							parent
							
								
									cd3b869a28
								
							
						
					
					
						commit
						2b38f7bf7a
					
				| @ -49,6 +49,10 @@ The source directory, path relative to `$GITHUB_WORKSPACE` root, eg: `dist/` | ||||
| 
 | ||||
| The target directory | ||||
| 
 | ||||
| ##### 8. `EXCLUDE` (optional, default '') | ||||
| 
 | ||||
| path to exclude separated by `,`, ie: `/dist/, /node_modules/` | ||||
| 
 | ||||
| # Usage | ||||
| 
 | ||||
| !!! Please use latest version, Readme file is just an example, eg: ssh-deploy@v2.1.5 | ||||
| @ -63,6 +67,7 @@ The target directory | ||||
|       REMOTE_HOST: ${{ secrets.REMOTE_HOST }} | ||||
|       REMOTE_USER: ${{ secrets.REMOTE_USER }} | ||||
|       TARGET: ${{ secrets.REMOTE_TARGET }} | ||||
|       EXCLUDE: "/dist/, /node_modules/" | ||||
| ``` | ||||
| 
 | ||||
| # Example usage in workflow | ||||
| @ -96,6 +101,7 @@ jobs: | ||||
|           REMOTE_HOST: ${{ secrets.REMOTE_HOST }} | ||||
|           REMOTE_USER: ${{ secrets.REMOTE_USER }} | ||||
|           TARGET: ${{ secrets.REMOTE_TARGET }} | ||||
|           EXCLUDE: "/dist/, /node_modules/" | ||||
| ``` | ||||
| 
 | ||||
| ## Disclaimer | ||||
|  | ||||
							
								
								
									
										16
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -556,7 +556,7 @@ module.exports = require("path"); | ||||
| /***/ 659: | ||||
| /***/ (function(module) { | ||||
| 
 | ||||
| const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KEY', 'DEPLOY_KEY_NAME', 'SOURCE', 'TARGET', 'ARGS']; | ||||
| const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KEY', 'DEPLOY_KEY_NAME', 'SOURCE', 'TARGET', 'ARGS', 'EXCLUDE']; | ||||
| 
 | ||||
| const inputs = { | ||||
|   GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE | ||||
| @ -589,7 +589,7 @@ const { addSshKey } = __webpack_require__(613); | ||||
| const { | ||||
|   REMOTE_HOST, REMOTE_USER, | ||||
|   REMOTE_PORT, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, | ||||
|   SOURCE, TARGET, ARGS, | ||||
|   SOURCE, TARGET, ARGS, EXCLUDE, | ||||
|   GITHUB_WORKSPACE | ||||
| } = __webpack_require__(659); | ||||
| 
 | ||||
| @ -602,13 +602,14 @@ const defaultOptions = { | ||||
| console.log('[general] GITHUB_WORKSPACE: ', GITHUB_WORKSPACE); | ||||
| 
 | ||||
| const sshDeploy = (() => { | ||||
|   const rsync = ({ privateKey, port, src, dest, args }) => { | ||||
|   const rsync = ({ privateKey, port, src, dest, args, exclude }) => { | ||||
|     console.log(`[Rsync] Starting Rsync Action: ${src} to ${dest}`); | ||||
|     if (exclude) console.log(`[Rsync] exluding folders ${exclude}`); | ||||
| 
 | ||||
|     try { | ||||
|       // RSYNC COMMAND
 | ||||
|       nodeRsync({ | ||||
|         src, dest, args, privateKey, port, ...defaultOptions | ||||
|         src, dest, args, privateKey, port, exclude, ...defaultOptions | ||||
|       }, (error, stdout, stderr, cmd) => { | ||||
|         if (error) { | ||||
|           console.error('⚠️ [Rsync] error: ', error.message); | ||||
| @ -626,12 +627,12 @@ const sshDeploy = (() => { | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   const init = ({ src, dest, args, host = 'localhost', port, username, privateKeyContent }) => { | ||||
|   const init = ({ src, dest, args, host = 'localhost', port, username, privateKeyContent, exclude = [] }) => { | ||||
|     validateRsync(() => { | ||||
|       const privateKey = addSshKey(privateKeyContent, DEPLOY_KEY_NAME || 'deploy_key'); | ||||
|       const remoteDest = `${username}@${host}:${dest}`; | ||||
| 
 | ||||
|       rsync({ privateKey, port, src, dest: remoteDest, args }); | ||||
|       rsync({ privateKey, port, src, dest: remoteDest, args, exclude }); | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
| @ -650,7 +651,8 @@ const run = () => { | ||||
|     host: REMOTE_HOST, | ||||
|     port: REMOTE_PORT || '22', | ||||
|     username: REMOTE_USER, | ||||
|     privateKeyContent: SSH_PRIVATE_KEY | ||||
|     privateKeyContent: SSH_PRIVATE_KEY, | ||||
|     exclude: (EXCLUDE || '').split(',').map((item) => item.trim()) // split by comma and trim whitespace
 | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										2064
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2064
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14
									
								
								src/index.js
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/index.js
									
									
									
									
									
								
							| @ -7,7 +7,7 @@ const { addSshKey } = require('./sshKey'); | ||||
| const { | ||||
|   REMOTE_HOST, REMOTE_USER, | ||||
|   REMOTE_PORT, SSH_PRIVATE_KEY, DEPLOY_KEY_NAME, | ||||
|   SOURCE, TARGET, ARGS, | ||||
|   SOURCE, TARGET, ARGS, EXCLUDE, | ||||
|   GITHUB_WORKSPACE | ||||
| } = require('./inputs'); | ||||
| 
 | ||||
| @ -20,13 +20,14 @@ const defaultOptions = { | ||||
| console.log('[general] GITHUB_WORKSPACE: ', GITHUB_WORKSPACE); | ||||
| 
 | ||||
| const sshDeploy = (() => { | ||||
|   const rsync = ({ privateKey, port, src, dest, args }) => { | ||||
|   const rsync = ({ privateKey, port, src, dest, args, exclude }) => { | ||||
|     console.log(`[Rsync] Starting Rsync Action: ${src} to ${dest}`); | ||||
|     if (exclude) console.log(`[Rsync] exluding folders ${exclude}`); | ||||
| 
 | ||||
|     try { | ||||
|       // RSYNC COMMAND
 | ||||
|       nodeRsync({ | ||||
|         src, dest, args, privateKey, port, ...defaultOptions | ||||
|         src, dest, args, privateKey, port, exclude, ...defaultOptions | ||||
|       }, (error, stdout, stderr, cmd) => { | ||||
|         if (error) { | ||||
|           console.error('⚠️ [Rsync] error: ', error.message); | ||||
| @ -44,12 +45,12 @@ const sshDeploy = (() => { | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   const init = ({ src, dest, args, host = 'localhost', port, username, privateKeyContent }) => { | ||||
|   const init = ({ src, dest, args, host = 'localhost', port, username, privateKeyContent, exclude = [] }) => { | ||||
|     validateRsync(() => { | ||||
|       const privateKey = addSshKey(privateKeyContent, DEPLOY_KEY_NAME || 'deploy_key'); | ||||
|       const remoteDest = `${username}@${host}:${dest}`; | ||||
| 
 | ||||
|       rsync({ privateKey, port, src, dest: remoteDest, args }); | ||||
|       rsync({ privateKey, port, src, dest: remoteDest, args, exclude }); | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
| @ -68,7 +69,8 @@ const run = () => { | ||||
|     host: REMOTE_HOST, | ||||
|     port: REMOTE_PORT || '22', | ||||
|     username: REMOTE_USER, | ||||
|     privateKeyContent: SSH_PRIVATE_KEY | ||||
|     privateKeyContent: SSH_PRIVATE_KEY, | ||||
|     exclude: (EXCLUDE || '').split(',').map((item) => item.trim()) // split by comma and trim whitespace
 | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KEY', 'DEPLOY_KEY_NAME', 'SOURCE', 'TARGET', 'ARGS']; | ||||
| const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KEY', 'DEPLOY_KEY_NAME', 'SOURCE', 'TARGET', 'ARGS', 'EXCLUDE']; | ||||
| 
 | ||||
| const inputs = { | ||||
|   GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Peter Kracik
						Peter Kracik