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

Pluggable artifact transfer & storage

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • core
    • None

    Description

      Currently artifact archiving follows a fixed model: artifacts are defined in ArtifactArchiver (or MavenArtifactArchiver) configuration; they are copied from slave to master using FilePath.copyRecursiveTo; they are stored in ${Run.rootDir}/archive; and they are served by browsing this directory in master.

      This system has obvious scalability limitations: channel transfer is not particularly efficient; and storing enormous files in the builds directory can cause disk overruns.

      The CloudBees Fast Archiver plugin tries to address the transfer speed issue by using a better algorithm. This helps, but the implementation (replacing the ArtifactArchiver build step) is very awkward, and cannot be made to work properly with Maven projects, fingerprints, etc.

      Some installations may anyway not need to copy files at all. The master and slave might share a common network filesystem, or might have a way of efficiently transferring file references (e.g. ZFS send).

      Finally, there should be the option to store artifacts in a better way: on a big slow drive, in a compressed archive, etc.

      To handle all these requirements we need an extension point that encompasses both transfer and storage of artifacts for each build.

      Attachments

        Issue Links

          Activity

            People

              jglick Jesse Glick
              jglick Jesse Glick
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: