Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-44657

Build history not copied after renaming the job's parent folder when using custom build directories

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None
    • Jenkins 2.46.3; Mac OS X

      If you have configured Jenkins to use custom build directories and then rename a folder, the builds from any jobs in those folders are not correctly copied to the target folder.

      Steps to reproduce

      1. Configure Jenkins to use a custom build directory
      2. Create a folder
      3. In that folder, create a freestyle job
      3.1. Add a shell step with the text "artifact.txt"
      3.2. Add a post-build action to archive the artifacts
      4. Run the freestyle job
      5. See that the builds are showing up in the custom build directory
      6. Rename the folder
      7. Navigate to the job in the new folder
      8. Click on the build run earlier

      Actual Result

      The build logs and artifacts are missing from build #1 as seen in the screen shot after rename. Furthermore, if you restart Jenkins, the build history is completely lost.

      Expected Result

      The build logs and artifacts should not be lost. Restarting Jenkins should not result in the loss of build history.

          [JENKINS-44657] Build history not copied after renaming the job's parent folder when using custom build directories

          Ryan Campbell created issue -

          Ryan Campbell added a comment -

          I also observe that the original build directory is not actually renamed at all:

          ➜  external-builds ls -lR original-folder/the-job\ /1
          original-folder/the-job /1:
          total 12
          drwxr-xr-x 3 recampbell staff 102 Jun  2 15:38 archive
          -rw-r--r-- 1 recampbell staff 873 Jun  2 15:38 build.xml
          -rw-r--r-- 1 recampbell staff   6 Jun  2 15:38 changelog.xml
          -rw-r--r-- 1 recampbell staff 548 Jun  2 15:38 log
          
          original-folder/the-job /1/archive:
          total 0
          -rw-r--r-- 1 recampbell staff 0 Jun  2 15:38 artifact.txt
          

          but the new location of the build seems to just be a symlink to itself, which makes it unsurprising that the build history is lost upon restart.

          ➜  JENKINS-33941-builds ls -lR renamed-folder/the-job\ /1
          lrwxr-xr-x 1 recampbell staff 1 Jun  2 15:40 renamed-folder/the-job /1 -> 1
          ➜  JENKINS-33941-builds ls -lR renamed-folder/
          renamed-folder/:
          total 0
          drwxr-xr-x 8 recampbell staff 272 Jun  2 15:40 the-job
          
          renamed-folder/the-job :
          total 24
          lrwxr-xr-x 1 recampbell staff 1 Jun  2 15:40 1 -> 1
          lrwxr-xr-x 1 recampbell staff 2 Jun  2 15:40 lastFailedBuild -> -1
          lrwxr-xr-x 1 recampbell staff 1 Jun  2 15:40 lastStableBuild -> 1
          lrwxr-xr-x 1 recampbell staff 1 Jun  2 15:40 lastSuccessfulBuild -> 1
          lrwxr-xr-x 1 recampbell staff 2 Jun  2 15:40 lastUnstableBuild -> -1
          lrwxr-xr-x 1 recampbell staff 2 Jun  2 15:40 lastUnsuccessfulBuild -> -1
          

          Ryan Campbell added a comment - I also observe that the original build directory is not actually renamed at all: ➜ external-builds ls -lR original-folder/the-job\ /1 original-folder/the-job /1: total 12 drwxr-xr-x 3 recampbell staff 102 Jun 2 15:38 archive -rw-r--r-- 1 recampbell staff 873 Jun 2 15:38 build.xml -rw-r--r-- 1 recampbell staff 6 Jun 2 15:38 changelog.xml -rw-r--r-- 1 recampbell staff 548 Jun 2 15:38 log original-folder/the-job /1/archive: total 0 -rw-r--r-- 1 recampbell staff 0 Jun 2 15:38 artifact.txt but the new location of the build seems to just be a symlink to itself, which makes it unsurprising that the build history is lost upon restart. ➜ JENKINS-33941-builds ls -lR renamed-folder/the-job\ /1 lrwxr-xr-x 1 recampbell staff 1 Jun 2 15:40 renamed-folder/the-job /1 -> 1 ➜ JENKINS-33941-builds ls -lR renamed-folder/ renamed-folder/: total 0 drwxr-xr-x 8 recampbell staff 272 Jun 2 15:40 the-job renamed-folder/the-job : total 24 lrwxr-xr-x 1 recampbell staff 1 Jun 2 15:40 1 -> 1 lrwxr-xr-x 1 recampbell staff 2 Jun 2 15:40 lastFailedBuild -> -1 lrwxr-xr-x 1 recampbell staff 1 Jun 2 15:40 lastStableBuild -> 1 lrwxr-xr-x 1 recampbell staff 1 Jun 2 15:40 lastSuccessfulBuild -> 1 lrwxr-xr-x 1 recampbell staff 2 Jun 2 15:40 lastUnstableBuild -> -1 lrwxr-xr-x 1 recampbell staff 2 Jun 2 15:40 lastUnsuccessfulBuild -> -1
          Ryan Campbell made changes -
          Summary Original: Build history incorrectly copied when renaming the job's parent folder New: Build history not copied after renaming the job's parent folder when using custom build directories
          Ryan Campbell made changes -
          Description Original: If you have configured Jenkins to use custom build directories and then rename a folder, the builds from any jobs in those folders are not correctly copied to the target folder.

          h2. Steps to reproduce

          1. Configure Jenkins to use a custom build directory
           2. Create a folder
           3. In that folder, create a freestyle job
           3.1. Add a shell step with the text "artifact.txt"
           3.2. Add a post-build action to archive the artifacts
           4. Run the freestyle job
           5. See that the builds are showing up in the custom build directory
           6. Rename the folder
           7. Navigate to the job in the new folder
           8. Click on the build run earlier

          h2. Actual Result
          The build logs and artifacts are missing. Furthermore, if you restart Jenkins, the build history is completely lost.

          h2. Expected Result
          The build logs and artifacts should not be lost. Restarting Jenkins should not result in the loss of build history.
          New: If you have configured Jenkins to use custom build directories and then rename a folder, the builds from any jobs in those folders are not correctly copied to the target folder.
          h2. Steps to reproduce

          1. Configure Jenkins to use a custom build directory
           2. Create a folder
           3. In that folder, create a freestyle job
           3.1. Add a shell step with the text "artifact.txt"
           3.2. Add a post-build action to archive the artifacts
           4. Run the freestyle job
           5. See that the builds are showing up in the custom build directory
           6. Rename the folder
           7. Navigate to the job in the new folder
           8. Click on the build run earlier
          h2. Actual Result

          The build logs and artifacts are missing from build #1 as seen in the screen shot after rename. Furthermore, if you restart Jenkins, the build history is completely lost.
          h2. Expected Result

          The build logs and artifacts should not be lost. Restarting Jenkins should not result in the loss of build history.
          Ryan Campbell made changes -
          Link New: This issue is duplicated by JENKINS-33941 [ JENKINS-33941 ]

          Ryan Campbell added a comment -

          On the duplicate issue JENKINS-33941, jglick said: Possibly the Job.renameTo override needs to be replaced with an ItemListener.onLocationChanged implementation.

          Ryan Campbell added a comment - On the duplicate issue  JENKINS-33941 , jglick  said: Possibly the Job.renameTo override needs to be replaced with an ItemListener.onLocationChanged implementation.

          rsandell added a comment -

          I have a feeling this is not a core issue, but an issue in folders plugin.

          Writing a test to confirm.

          rsandell added a comment - I have a feeling this is not a core issue, but an issue in folders plugin. Writing a test to confirm.
          rsandell made changes -
          Assignee New: rsandell [ rsandell ]
          rsandell made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          rsandell made changes -
          Status Original: In Progress [ 3 ] New: In Review [ 10005 ]

            rsandell rsandell
            recampbell Ryan Campbell
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: