[JIRA] (JENKINS-40687) "Automatic Cleanup and Sync" does not delete non-versioned folders, only files

59 views
Skip to first unread message

pyrocks@gmail.com (JIRA)

unread,
Dec 27, 2016, 9:22:01 AM12/27/16
to jenkinsc...@googlegroups.com
Mor L created an issue
 
Jenkins / Bug JENKINS-40687
"Automatic Cleanup and Sync" does not delete non-versioned folders, only files
Issue Type: Bug Bug
Assignee: Unassigned
Components: p4-plugin
Created: 2016/Dec/27 2:21 PM
Environment: Jenkins - 2.7.4
Pipeline - 2.4
P4-Plugin - 1.4.12
Priority: Minor Minor
Reporter: Mor L

Hi,

I have a pipeline which uses the checkout([ $class: 'PerforceScm... syntax.
Among other things, this build runs "npm install" which creates the node_modules folder under the workspace with all the relevant packages.

When the checkout is done with Automatic Cleanup and Sync (AutoCleanImpl) - it cleans up all files under node_modules but leaves the folder structure intact. This causes issues when running npm install in the next build.

As a workaround I have 2 alternatives:
1. run "npm cache clean" on every build
2. checkout with "Forced Clean and Sync" (ForceCleanImpl)

Can AutoCleanImpl also remove non-versioned folders? Or this is intentional?

Thanks,
Mor

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

boris.avney@imperva.com (JIRA)

unread,
Jan 1, 2017, 9:46:02 AM1/1/17
to jenkinsc...@googlegroups.com
boris avney stopped work on Bug JENKINS-40687
 
Change By: boris avney
Status: In Progress Open

boris.avney@imperva.com (JIRA)

unread,
Jan 1, 2017, 9:46:03 AM1/1/17
to jenkinsc...@googlegroups.com
boris avney started work on Bug JENKINS-40687
 
Change By: boris avney
Status: Open In Progress

pallen@perforce.com (JIRA)

unread,
Jan 6, 2017, 11:10:02 AM1/6/17
to jenkinsc...@googlegroups.com
Paul Allen commented on Bug JENKINS-40687
 
Re: "Automatic Cleanup and Sync" does not delete non-versioned folders, only files

The AutoCleanImpl only cleans up Versioned files. In addition Perforce will not remove empty directories unless you set the RMDIR option in your workspace, and then only if Perforce removes the last file (so if it was already empty, Perforce will not delete it).

workspace: [$class: 'ManualWorkspaceImpl', ...
   spec: [rmdir: true, ...

The 'p4cleanup' is a bit more drastic, deleting the client workspace. Do check the Global cleanup options under 'Manage Jenkins' -> 'Configure System' as you can set it to remove all content and client metadata.

pyrocks@gmail.com (JIRA)

unread,
Jan 8, 2017, 1:32:01 AM1/8/17
to jenkinsc...@googlegroups.com
Mor L commented on Bug JENKINS-40687

Hi,

I'm not sure I understand "The AutoCleanImpl only cleans up Versioned files" correctly - the plugin documentation contradicts that:
"Automatic Cleanup and Sync
Efficient cleaning and syncing of file revisions. Extra (non versioned files) are removed, missing and modified files re-added.
Best for clean builds."
I would expect the "Extra (non versioned files) are removed" would include the directories as well.

pyrocks@gmail.com (JIRA)

unread,
Jan 8, 2017, 1:35:02 AM1/8/17
to jenkinsc...@googlegroups.com
Mor L edited a comment on Bug JENKINS-40687
Hi,

I'm not sure I understand "The AutoCleanImpl only cleans up Versioned files" correctly - the plugin documentation contradicts that:
"*Automatic Cleanup and Sync*
Efficient cleaning and syncing of file revisions. +Extra (non versioned files) are removed+, missing and modified files re-added.
Best for clean builds."
I would expect the "Extra (non versioned files) are removed" would include the directories as well.

I will try adding the RMDIR and see how it goes.
Either way - I think it would be good to also document the  "Options" section of the plugin (in which you can checkbox RMDIR) because its not clear.

pallen@perforce.com (JIRA)

unread,
Jan 9, 2017, 6:31:01 AM1/9/17
to jenkinsc...@googlegroups.com

Sorry you are correct; AutoClean will remove non versioned files within the scope of the Workspace View (p4 clean). However, files outside of the Workspace view will not get removed.

RMDIR is a unset as Perforce default; I could override this option in Jenkins, but some better documentation would help. Do let me know if the option works for you.

Reply all
Reply to author
Forward
0 new messages