From 1befdb1c6bf3282aa34e6caa431cb2da23d2b17d Mon Sep 17 00:00:00 2001 From: Emmanuel Isenah Date: Sun, 17 Mar 2024 22:19:34 +0100 Subject: [PATCH 1/5] feat: Add deleteFile function to helpers module --- src/helpers.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/helpers.js b/src/helpers.js index 1c705df..78379e1 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -1,4 +1,4 @@ -const { existsSync, mkdirSync, writeFileSync } = require('fs'); +const { existsSync, mkdirSync, writeFileSync, unlink } = require('fs'); const { join } = require('path'); const validateDir = (dir) => { @@ -45,6 +45,29 @@ const writeToFile = ({ dir, filename, content, isRequired, mode = '0644' }) => { } }; +const deleteFile = ({ dir, filename, isRequired }) => { + validateDir(dir); + const filePath = join(dir, filename); + + if (existsSync(filePath)) { + const message = `⚠️ [FILE] ${filePath} Required file exist.`; + handleError(message, isRequired); + return; + } + + try { + console.log(`[FILE] Deleting ${filePath} file ...`); + unlink(filePath, (error) => { + if (error) { + throw new Error(error); + } + }); + } catch (error) { + const message = `⚠️[FILE] Deleting file error. filePath: ${filePath}, message: ${error.message}`; + handleError(message, isRequired); + } +}; + const validateRequiredInputs = (inputs) => { const inputKeys = Object.keys(inputs); const validInputs = inputKeys.filter((inputKey) => { @@ -66,6 +89,7 @@ const snakeToCamel = (str) => str.replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.t module.exports = { writeToFile, + deleteFile, validateRequiredInputs, snakeToCamel }; From b82eced4571cb3f63369d51760a81820ffb1bc7f Mon Sep 17 00:00:00 2001 From: Emmanuel Isenah Date: Sun, 17 Mar 2024 22:19:44 +0100 Subject: [PATCH 2/5] feat: apply deleteFile function to remoteCmd --- src/remoteCmd.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/remoteCmd.js b/src/remoteCmd.js index 3881b20..70f7656 100644 --- a/src/remoteCmd.js +++ b/src/remoteCmd.js @@ -1,7 +1,7 @@ const { exec } = require('child_process'); const crypto = require('crypto'); const { sshServer, githubWorkspace, remotePort } = require('./inputs'); -const { writeToFile } = require('./helpers'); +const { writeToFile, deleteFile } = require('./helpers'); const handleError = (message, isRequired, callback) => { if (isRequired) { @@ -30,6 +30,8 @@ const remoteCmd = async (content, privateKeyPath, isRequired, label) => new Prom } else { const limited = data.substring(0, dataLimit); console.log('✅ [CMD] Remote script executed. \n', limited, stderr); + deleteFile({ dir: githubWorkspace, filename }); + console.log('✅ [FILE] Script file deleted.'); resolve(limited); } } From ece05a22752e524363164bfb2f69a5ba4f8ded0d Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 24 Jul 2024 16:55:35 +0000 Subject: [PATCH 3/5] chore(release): 5.1.0 [skip ci] # [5.1.0](https://github.com/easingthemes/ssh-deploy/compare/v5.0.3...v5.1.0) (2024-07-24) ### Features * Add deleteFile function to helpers module ([1befdb1](https://github.com/easingthemes/ssh-deploy/commit/1befdb1c6bf3282aa34e6caa431cb2da23d2b17d)) * apply deleteFile function to remoteCmd ([b82eced](https://github.com/easingthemes/ssh-deploy/commit/b82eced4571cb3f63369d51760a81820ffb1bc7f)) --- docs/CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 39e6fa1..b9dafac 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,11 @@ +# [5.1.0](https://github.com/easingthemes/ssh-deploy/compare/v5.0.3...v5.1.0) (2024-07-24) + + +### Features + +* Add deleteFile function to helpers module ([1befdb1](https://github.com/easingthemes/ssh-deploy/commit/1befdb1c6bf3282aa34e6caa431cb2da23d2b17d)) +* apply deleteFile function to remoteCmd ([b82eced](https://github.com/easingthemes/ssh-deploy/commit/b82eced4571cb3f63369d51760a81820ffb1bc7f)) + ## [5.0.3](https://github.com/easingthemes/ssh-deploy/compare/v5.0.2...v5.0.3) (2024-02-27) diff --git a/package.json b/package.json index 68dcfe6..6c69eb8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@draganfilipovic/ssh-deploy", - "version": "5.0.3", + "version": "5.1.0", "description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.", "main": "dist/index.js", "files": [ From f007431332cb2dae49153363ad22fb9f90f4aa75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20Filipovi=C4=87?= Date: Wed, 24 Jul 2024 19:04:28 +0200 Subject: [PATCH 4/5] fix: Update README.md --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d84fbe0..a52946a 100644 --- a/README.md +++ b/README.md @@ -67,19 +67,27 @@ Execution is preformed by storing commands in `.sh` file and executing it via `. 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_BEFORE_REQUIRED` (optional, default false) + +If set to `true`, Job will fail if SCRIPT_BEFORE fails. + +##### 11. `SCRIPT_AFTER` (optional, default '') Script to run on host machine after rsync. Rsync output is stored in `$RSYNC_STDOUT` env variable. -##### 11. `SSH_CMD_ARGS` (optional, default '-o StrictHostKeyChecking=no') +##### 12. `SCRIPT_AFTER_REQUIRED` (optional, default false) + +If set to `true`, Job will fail if SCRIPT_AFTER fails. + +##### 13. `SSH_CMD_ARGS` (optional, default '-o StrictHostKeyChecking=no') A list of ssh arguments, they must be prefixed with -o and separated by a comma, for example: -o SomeArgument=no, -o SomeOtherArgument=5 # Usage -Use the latest version from Marketplace,eg: ssh-deploy@v2 +Use the latest version from Marketplace,eg: ssh-deploy@v5.1.0 or use the latest version from a branch, eg: ssh-deploy@main ``` From a1aa0b6cf96ce2406eef90faa35007a4a7bf0ac0 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 24 Jul 2024 17:04:53 +0000 Subject: [PATCH 5/5] chore(release): 5.1.1 [skip ci] ## [5.1.1](https://github.com/easingthemes/ssh-deploy/compare/v5.1.0...v5.1.1) (2024-07-24) ### Bug Fixes * Update README.md ([f007431](https://github.com/easingthemes/ssh-deploy/commit/f007431332cb2dae49153363ad22fb9f90f4aa75)) --- docs/CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b9dafac..873cbcf 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,10 @@ +## [5.1.1](https://github.com/easingthemes/ssh-deploy/compare/v5.1.0...v5.1.1) (2024-07-24) + + +### Bug Fixes + +* Update README.md ([f007431](https://github.com/easingthemes/ssh-deploy/commit/f007431332cb2dae49153363ad22fb9f90f4aa75)) + # [5.1.0](https://github.com/easingthemes/ssh-deploy/compare/v5.0.3...v5.1.0) (2024-07-24) diff --git a/package.json b/package.json index 6c69eb8..22b5373 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@draganfilipovic/ssh-deploy", - "version": "5.1.0", + "version": "5.1.1", "description": "Fast NodeJS action to deploy specific directory from `GITHUB_WORKSPACE` to a server via rsync over ssh.", "main": "dist/index.js", "files": [