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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user