Matoy
Matoy

Reputation: 1818

Jenkins - kill process before delete workspace action starts

I am having a Jenkins job that runs Nunit tests on remote machine. I am using Jenkins's Workspace Cleanup Plugin pluggin (https://wiki.jenkins-ci.org/display/JENKINS/Workspace+Cleanup+Plugin) to clean my workspace.

the problem is that I want to task kill some process on my machine (because otherwise I could not delete the workspace - some files will be in use and threfore could not be deleted) and I want to do it before the delete action takes place (it is always the first action on the job).

I know that there is an option in the pluggin- "External Deletion Command" - but this runs the command on all the files in the workspace where as I need it to run only once (not on a the sepsific workspace files - i.e. only this command: "c:/workspace/taskill nunit")

is there a way to do so? Thanks

Upvotes: 0

Views: 1299

Answers (1)

Dvir669
Dvir669

Reputation: 8610

If I can suggest a different approach to use an app called LockHunter which has an API to unlock and delete your workspace. It's much more "sergical" than removing a random task and hope it's the one you meant to. You can trigger it from command line using "run before SCM" and it'll handle the deletion and unblocking of your specific workspace.

You can also use:

"cmd /c wmic /INTERACTIVE:OFF Path win32_process Where \\"CommandLine Like '%workspace%'\\" call terminate"

Where %workspace% is your current workspace. This will go over all the tasks that are currently running and check the command line path, then it'll call terminate for anything it found.

Good luck!

Upvotes: 1

Related Questions