Artifactory's open integration layer for CI build servers
Java Groovy HTML
Switch branches/tags
jenkins-build-info-maven3-extractor-118 jenkins-build-info-maven3-extractor-117 jenkins-build-info-maven3-extractor-116 jenkins-build-info-maven3-extractor-115 jenkins-build-info-maven3-extractor-111 jenkins-build-info-maven3-extractor-110 jenkins-build-info-maven3-extractor-108 jenkins-build-info-maven3-extractor-107 jenkins-build-info-extractor-maven3-plugin-35 jenkins-build-info-extractor-maven3-plugin-34 jenkins-build-info-extractor-maven3-plugin-33 jenkins-build-info-extractor-maven3-plugin-32 jenkins-build-info-extractor-maven3-plugin-29 jenkins-build-info-extractor-maven3-plugin-28 jenkins-build-info-extractor-165 jenkins-build-info-extractor-164 jenkins-build-info-extractor-163 jenkins-build-info-extractor-157 jenkins-build-info-extractor-154 jenkins-build-info-extractor-153 jenkins-build-info-extractor-152 jenkins-build-info-extractor-151 jenkins-build-info-extractor-137 jenkins-build-info-extractor-136 jenkins-build-info-extractor-120 jenkins-build-info-extractor-119 jenkins-build-info-extractor-116 jenkins-build-info-extractor-115 jenkins-build-info-extractor-110 jenkins-build-info-extractor-109 jenkins-build-info-extractor-108 jenkins-build-info-extractor-107 jenkins-build-info-extractor-106 jenkins-build-info-extractor-105 jenkins-build-info-extractor-104 _full-2.0.16 full-2.0.15 build-info-maven3-plugin-2.6.2 build-info-maven3-plugin-2.6.1 build-info-maven3-plugin-2.6.0 build-info-maven3-plugin-2.4.1 build-info-maven3-plugin-2.4.0 build-info-ivy-extractor-2.6.6 build-info-ivy-extractor-2.6.5 build-info-ivy-extractor-2.6.4 build-info-ivy-extractor-2.6.3 build-info-ivy-extractor-2.6.2 build-info-gradle-extractor-4.4.18 build-info-gradle-extractor-4.4.17 build-info-gradle-extractor-4.4.16 build-info-gradle-extractor-4.4.15 build-info-gradle-extractor-4.4.14 build-info-gradle-extractor-4.4.13 build-info-gradle-extractor-4.4.12 build-info-gradle-extractor-4.4.11 build-info-gradle-extractor-4.4.10 build-info-gradle-extractor-4.4.9 build-info-gradle-extractor-4.4.8 build-info-gradle-extractor-4.4.7 build-info-gradle-extractor-4.4.6 build-info-gradle-extractor-4.4.5 build-info-gradle-extractor-4.4.4 build-info-gradle-extractor-4.4.3 build-info-gradle-extractor-4.4.2 build-info-gradle-extractor-4.4.1 build-info-gradle-extractor-4.4.0 build-info-gradle-extractor-4.1.1 build-info-gradle-extractor-4.1.0 build-info-gradle-extractor-4.0.1 build-info-gradle-extractor-4.0.0 build-info-gradle-extractor-3.2.0 build-info-gradle-extractor-3.1.0 build-info-gradle-extractor-3.0.0 build-info-gradle-extractor-2.2.5 build-info-gradle-extractor-2.2.3 build-info-extractor-maven3-2.6.9 build-info-extractor-maven3-2.6.8 build-info-extractor-maven3-2.6.7 build-info-extractor-maven3-2.6.6 build-info-extractor-maven3-2.6.5 build-info-extractor-maven3-2.6.4 build-info-extractor-maven3-2.6.3 build-info-extractor-maven3-2.6.1 build-info-extractor-maven3-2.6.0 build-info-extractor-maven3-2.5.5 build-info-extractor-maven3-2.5.4 build-info-extractor-maven3-2.5.3 build-info-extractor-maven3-2.5.2 build-info-extractor-maven3-2.5.1 build-info-extractor-maven3-2.5.0 build-info-extractor-maven3-2.4.3 build-info-extractor-maven3-2.4.2 build-info-extractor-maven3-2.4.1 build-info-extractor-maven3-2.4.0 build-info-extractor-maven3-2.3.1 build-info-extractor-maven3-2.2.4 build-info-extractor-maven3-2.0.8 build-info-extractor-maven3-2.0.6 build-info-extractor-maven3-2.0.4 build-info-extractor-maven3-2.0.2
Nothing to show
Permalink
Failed to load latest commit information.
build-info-api/src BI-405 - Allow distribution from pipeline May 9, 2017
build-info-client/src/main BI-412 - Fixed an issue upon using credentials of the proxy (#119) May 17, 2017
build-info-extractor-gradle/src GAP-274 - Avoid multiple evaluation of projects May 12, 2017
build-info-extractor-ivy BI-406 - Use a separate rest API for build retention Apr 16, 2017
build-info-extractor-maven3-plugin/src NMAP-29 - Maven plugin StackOverflowError in multi module projects wi… Apr 13, 2016
build-info-extractor-maven3/src BI-408 - Maven release management locking pom file Apr 19, 2017
build-info-extractor/src BI-405 - Allow distribution from pipeline May 9, 2017
build-info-parent Downgrade Guava for compatibility with Bamboo 3.4.2 Jan 5, 2012
build-info-vcs/src/main/java/org/jfrog/build/vcs/perforce BI-205 - Support ssl connection from PerforceClient to perforce server Nov 17, 2015
buildSrc Upgrade to Gradle 1.6 and resolve deprecations May 19, 2013
gradle/wrapper Upgrade Gradle version. Feb 7, 2016
itest Merge remote-tracking branch 'origin/master' Aug 26, 2015
native [artifactory-release] Release version 2.3.1 Nov 9, 2014
.gitignore build info integration tests May 11, 2015
CONTRIBUTING.md Copy paste CLA requirement from the Wiki Jan 11, 2015
README.md Set additionalProperties to false for a few missed objects. May 4, 2016
build.gradle BI-391 - Upgrade httpclient and httpcore dependencies Dec 22, 2016
gradle.properties [artifactory-release] Next development version May 17, 2017
gradlew Upgrade to Gradle 1.6 and resolve deprecations May 19, 2013
gradlew.bat Upgrade to Gradle 1.6 and resolve deprecations May 19, 2013
settings.gradle split itest from buildInfo gradle project May 14, 2015

README.md

Overview

Build Info is Artifactory's open integration layer for the CI servers and build tools. The build information is sent to Artifactory in json format.

To build the project (with gradle 0.9.2 or above)

> gradle -S build

or with the gradle wrapper in Unix

> ./gradlew -S build

and the gradle wrapper in Windows

> gradlew.bat -S build

Build Info json format

{
  "properties" : {
   /* Environment variables and properties collected from the CI server.
      The "buildInfo.env." prefix is added to environment variables and build related properties.
      For system variables there's no prefix. */
   "buildInfo.env.JAVA_HOME" : "",
   ...
  },
  "version" : "1.0.1", // Build Info schema version
  "name" : "My-build-name", // Build name
  "number" : "28", // Build number
  "type" : "MAVEN", // Build type (values currently supported: MAVEN, GRADLE, ANT, IVY and GENERIC)
  "buildAgent" : { // Build tool information
    "name" : "Maven", // Build tool type
    "version" : "3.0.5" // Build tool version
  },
  "agent" : { // CI Server information
    "name" : "Jenkins", // CI server type
    "version" : "1.554.2" // CI server version
  },
  "started" : "2014-09-30T12:00:19.893+0300", // Build start time in the format of yyyy-MM-dd'T'HH:mm:ss.SSSZ
  "artifactoryPluginVersion" : "2.3.1",
  "durationMillis" : 9762, // Build duration in milliseconds
  "artifactoryPrincipal" : "james", // Artifactory principal (the Artifactory user used for deployment)
  "url" : "http://my-ci-server/jenkins/job/My-project-name/28/", // CI server URL
  "vcsRevision" : "e4ab2e493afd369ae7bdc90d69c912e8346a3463", // VCS revision
  "vcsUrl" : "https://github.com/github-user/my-project.git", // VCS URL
  "licenseControl" : {	// Artifactory License Control information
    "runChecks" : true,	// Artifactory will run automatic license scanning after the build is complete (true/false)
    "includePublishedArtifacts" : true, // Should Artifactory run license checks on the build artifacts, in addition to the build dependecies (true/false) 
    "autoDiscover" : true, // Should Artifactory auto discover licenses (true/false)
    "scopesList" : "", // A space-separated list of dependency scopes/configurations to run license violation checks on. If left empty all dependencies from all scopes will be checked.
    "licenseViolationsRecipientsList" : "" // Emails of recipients that should be notified of license violations in the build info (space-separated list)
  },
  "buildRetention" : { // Build retention information
    "deleteBuildArtifacts" : true, // Automatically remove build artifacts stored in Artifactory (true/false)
    "count" : 100, // The maximum number of builds to store in Artifactory.
    "minimumBuildDate" : 1407345768020, // Earliest build date to store in Artifactory
    "buildNumbersNotToBeDiscarded" : [ ] // List of build numbers that should not be removed from Artifactory
  },
  /* List of build modules */	
  "modules" : [ { // The build's first module
    "properties" : { // Module properties
      "project.build.sourceEncoding" : "UTF-8"
    },
    "id" : "org.jfrog.test:multi2:4.2-SNAPSHOT", // Module ID
    /* List of module artifacts */
    "artifacts" : [ {
      "type" : "jar",
      "sha1" : "2ed52ad1d864aec00d7a2394e99b3abca6d16639",
      "md5" : "844920070d81271b69579e17ddc6715c",
      "name" : "multi2-4.2-SNAPSHOT.jar"
    }, {
      "type" : "pom",
      "sha1" : "e8e9c7d790191f4a3df3a82314ac590f45c86e31",
      "md5" : "1f027d857ff522286a82107be9e807cd",
      "name" : "multi2-4.2-SNAPSHOT.pom"
    } ],
    /* List of module dependencies */
    "dependencies" : [ {
      "type" : "jar",
      "sha1" : "99129f16442844f6a4a11ae22fbbee40b14d774f",
      "md5" : "1f40fb782a4f2cf78f161d32670f7a3a",
      "id" : "junit:junit:3.8.1",
      "scopes" : [ "test" ]
    } ]
  }, { // The build's second module
    "properties" : { // Module properties
      "project.build.sourceEncoding" : "UTF-8"
    },
    "id" : "org.jfrog.test:multi3:4.2-SNAPSHOT", // Module ID
    /* List of module artifacts */	
    "artifacts" : [ { // Module artifacts
      "type" : "war",
      "sha1" : "df8e7d7b94d5ec9db3bfc92e945c7ff4e2391c7c",
      "md5" : "423c24f4c6e259f2774921b9d874a649",
      "name" : "multi3-4.2-SNAPSHOT.war"
    }, {
      "type" : "pom",
      "sha1" : "656330c5045130f214f954643fdc4b677f4cf7aa",
      "md5" : "b0afa67a9089b6f71b3c39043b18b2fc",
      "name" : "multi3-4.2-SNAPSHOT.pom"
    } ],
    /* List of module dependencies */
    "dependencies" : [ {
      "type" : "jar",
      "sha1" : "a8762d07e76cfde2395257a5da47ba7c1dbd3dce",
      "md5" : "b6a50c8a15ece8753e37cbe5700bf84f",
      "id" : "commons-io:commons-io:1.4",
      "scopes" : [ "compile" ]
    }, {
      "type" : "jar",
      "sha1" : "342d1eb41a2bc7b52fa2e54e9872463fc86e2650",
      "md5" : "2a666534a425add50d017d4aa06a6fca",
      "id" : "org.codehaus.plexus:plexus-utils:1.5.1",
      "scopes" : [ "compile" ]
    }, {
      "type" : "jar",
      "sha1" : "449ea46b27426eb846611a90b2fb8b4dcf271191",
      "md5" : "25c0752852205167af8f31a1eb019975",
      "id" : "org.springframework:spring-beans:2.5.6",
      "scopes" : [ "compile" ]
    } ]
  } ],
  /* List of issues related to the build */
    "issues" : {
    "tracker" : {
      "name" : "JIRA",
      "version" : "6.0.1"
    },
    "aggregateBuildIssues" : true,  //whether or not there are issues that already appeared in previous builds
    "aggregationBuildStatus" : "Released",
    "affectedIssues" : [ {
      "key" : "RTFACT-1234",
      "url" : "https://www.jfrog.com/jira/browse/RTFACT-1234",
      "summary" : "Description of the relevant issue",
      "aggregated" : false  //whether or not this specific issue already appeared in previous builds
    }, {
      "key" : "RTFACT-5469",
      "url" : "https://www.jfrog.com/jira/browse/RTFACT-5678",
      "summary" : "Description of the relevant issue",
      "aggregated" : true
    } ] 
  },  
  "governance" : { // Black Duck Code Center integration information
    "blackDuckProperties" : {
      "appName" : "", // The Black Duck Code Center application name
      "appVersion" : "", // The Black Duck Code Center application version
      "reportRecipients" : "", // Recipients that should receive an email report once the automatic Black Duck Code Center compliance checks are completed (space-separated list)
      "scopes" : "", // A list of dependency scopes/configurations to run Black Duck Code Center compliance checks on. If left empty all dependencies from all scopes will be checked  (space-separated list)
      "runChecks" : true, // Should Black Duck Code Center run automatic compliance checks after the build is completed (true/false)
      "includePublishedArtifacts" : true, // Include the build's published module artifacts in the Black Duck Code Center compliance checks if they are also used as dependencies for other modules in this build  (true/false)
      "autoCreateMissingComponentRequests" : true, // Auto create missing components in Black Duck Code Center application after the build is completed and deployed in Artifactory (true/false)
      "autoDiscardStaleComponentRequests" : true // Auto discard stale components in Black Duck Code Center application after the build is completed and deployed in Artifactory (true/false)
    }
  }
}

Build Info json schema

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "build-info",
  "description": "Artifactory build-info",
  "type": "object",
  "properties": {
    "properties": {
      "type": "object",
      "description": "Environment variables and properties collected from the CI server",
      "patternProperties": {
        "^.+$": {
          "type": "string"
        }
      }
    },
    "version": {
      "description": "Build info schema version",
      "type": "string"
    },
    "name": {
      "description": "Build name",
      "type": "string"
    },
    "number": {
      "description": "Build number",
      "type": "string"
    },
    "type": {
      "description": "Build type",
      "type": "string",
      "enum": [ "MAVEN", "GRADLE", "ANT", "IVY", "GENERIC" ]
    },
    "buildAgent": {
      "description": "Build tool information",
      "type": "object",
      "properties": {
        "name": {
          "description": "Build tool type",
          "type": "string"
        },
        "version": {
          "description": "Build tool version",
          "type": "string"
        }
      },
      "required": [ "name", "version" ],
      "additionalProperties": false
    },
    "agent": {
      "description": "CI server information",
      "type": "object",
      "properties": {
        "name": {
          "description": "CI server type",
          "type": "string"
        },
        "version": {
          "description": "CI server version",
          "type": "string"
        }
      },
      "required": [ "name", "version" ],
      "additionalProperties": false
    },
    "started": {
      "description": "Build start time",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}(Z|[+-]\\d{4})$"
    },
    "durationMillis": {
      "description": "Build duration in milliseconds",
      "type": "integer"
    },
    "principal": {
      "description": "",
      "type": "string"
    },
    "artifactoryPrincipal": {
      "description": "Artifactory user used for deployment",
      "type": "string"
    },
    "url": {
      "description": "CI server URL",
      "type": "string"
    },
    "vcsRevision": {
      "description": "VCS revision",
      "type": "string"
    },
    "vcsUrl": {
      "description": "VCS URL",
      "type": "string"
    },
    "licenseControl": {
      "description": "Artifactory License Control Information",
      "type": "object",
      "allOf": [
        {
          "properties": {
            "runChecks": {
              "description": "Run automatic license scanning after the build is complete",
              "type": "boolean"
            },
            "includePublishedArtifacts": {
              "description": "Run license checks on artifacts in addition to build dependencies",
              "type": "boolean"
            },
            "autoDiscover": {
              "description": "Artifactory should auto-discover license",
              "type": "boolean"
            },
            "scopesList": {
              "description": "Space-separated list of dependency scopes to run license violation checks",
              "type": "string"
            },
            "licenseViolationRecipients": {},
            "licenseViolationsRecipientsList": {}
          },
          "required": [ "runChecks", "includePublishedArtifacts", "autoDiscover", "scopesList" ],
          "additionalProperties": false
        },
        {
          "anyOf": [
            {
              "properties": {
                "licenseViolationRecipients": {
                  "description": "List of email addresses to be notified of license violations",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [ "licenseViolationRecipients" ]
            },
            {
              "properties": {
                "licenseViolationsRecipientsList": {
                  "description": "Space-separated list of email addresses to be notified of license violations",
                  "type": "string"
                }
              },
              "required": [ "licenseViolationsRecipientsList" ]
            }
          ]
        }
      ]
    },
    "buildRetention": {
      "description": "Build Retention Information",
      "type": "object",
      "allOf": [
        {
          "properties": {
            "deleteBuildArtifacts": {
              "description": "Automatically remove build artifacts stored in Artifactory",
              "type": "boolean"
            },
            "buildNumbersNotToBeDiscarded": {
              "description": "List of build numbers that should not be removed from Artifactory",
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "count": {},
            "minimumBuildDate": {}
          },
          "additionalProperties": false
        },
        {
          "anyOf": [
            {
              "properties": {
                "count": {
                  "description": "Maximum number of builds to store in Artifactory",
                  "type": "integer"
                }
              },
              "required": [ "count" ]
            },
            {
              "properties": {
                "minimumBuildDate": {
                  "description": "Earliest build date to store in Artifactory",
                  "type": "integer"
                }
              },
              "required": [ "minimumBuildDate" ]
            }
          ]
        }
      ]
    },
    "modules": {
      "description": "Artifactory License Control Information",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "properties": {
             "description": "Module properties",
             "type": "object",
             "patternProperties": {
                "^.+$": {
                  "type": "string"
                }
             }
          },
          "id": {
            "description": "Module ID",
            "type": "string"
          },
          "artifacts": {
            "description": "List of module artifacts",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "sha1": {
                  "$ref": "#/definitions/sha1"
                },
                "md5": {
                  "$ref": "#/definitions/md5"
                }
              },
              "required": [ "name", "sha1", "md5" ]
            }
          },
          "dependencies": {
            "description": "List of module dependencies",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "sha1": {
                  "$ref": "#/definitions/sha1"
                },
                "md5": {
                  "$ref": "#/definitions/md5"
                },
                "scopes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [ "id", "sha1", "md5" ]
            }
          }
        },
        "required": [ "id", "artifacts", "dependencies" ],
        "additionalProperties": false
      }
    },
    "issues": {
      "description": "List of issues related to the build",
      "type": "object",
      "properties": {
        "tracker": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "required": [ "name", "version" ],
          "additionalProperties": false
        },
        "aggregateBuildIssues": {
          "description": "Whether issues have appeared in previous builds",
          "type": "boolean"
        },
        "aggregationBuildStatus": {
          "type": "string"
        },
        "affectedIssues": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "summary": {
                "type": "string"
              },
              "aggregated": {
                "description": "Whether this specific issue already appeared in previous builds",
                "type": "boolean"
              }
            },
            "required": [ "key", "url", "summary", "aggregated" ],
            "additionalProperties": false
          }
        }
      },
      "required": [ "tracker", "aggregateBuildIssues", "aggregationBuildStatus", "affectedIssues" ],
      "additionalProperties": false
    },
    "governence": {
      "description": "Black duck code center integration information",
      "type": "object",
      "properties": {
        "blackDuckProperties": {
          "type": "object",
          "properties": {
            "appName": {
              "description": "The Black Duck Code Center application name",
              "type": "string"
            },
            "appVersion": {
              "description": "The Black Duck Code Center application version",
              "type": "string"
            },
            "reportRecipients": {
              "description": "Space-separated list of recipients that should receive an email report once the automatic Black Duck Code Center compliance checks are completed",
              "type": "string"
            },
            "scopes": {
              "description": "Space-separated list of dependency scopes/configurations to run Black Duck Code Center compliance checks on. If left empty all dependencies from all scopes will be checked",
              "type": "string"
            },
            "runChecks": {
              "description": "Should Black Duck Code Center run automatic compliance checks after the build is completed",
              "type": "boolean"
            },
            "includePublishedArtifacts": {
              "description": "Include the build's published module artifacts in the Black Duck Code Center compliance checks if they are also used as dependencies for other modules in this build",
              "type": "boolean"
            },
            "autoCreateMissingComponentRequests": {
              "description": "Auto create missing components in Black Duck Code Center application after the build is completed and deployed in Artifactory",
              "type": "boolean"
            },
            "autoDiscardStaleComponentRequests": {
              "description": "Auto discard stale components in Black Duck Code Center application after the build is completed and deployed in Artifactory",
              "type": "boolean"
            }
          },
          "required": [ "appName", "appVersion", "reportRecipients", "scopes", "runChecks", "includePublishedArtifacts", "autoCreateMissingComponentRequests", "autoDiscardStaleComponentRequests" ],
          "additionalProperties": false
        }
      },
      "required": [ "blackDuckProperties" ],
      "additionalProperties": false
    }
  },
  "required": [ "version", "name", "number", "type", "started", "durationMillis", "modules" ],
  "additionalProperties": false,
  "definitions": {
    "sha1": {
      "description": "sha1 hash",
      "type": "string",
      "pattern": "^[0-9a-f]{40}$"
    },
    "md5": {
      "description": "md5 hash",
      "type": "string",
      "pattern": "^[0-9a-f]{32}$"
    }
  }
}